Hotline: 0975.023.626
Trang chủ / Hướng Dẫn / Hướng dẫn sử dụng hệ thống quản lý hoá điện tử Viettel / Hướng dẫn tích hợp API chữ ký số vào ứng dụng thông qua webservice viettel

Hướng dẫn tích hợp API chữ ký số vào ứng dụng thông qua webservice viettel


2

Thông số kĩ thuật

Hướng dẫn tích hợp API chữ ký số vào ứng dụng thông qua webservice viettel tích hợp chữ ký số vào website phần mềm tích hợp chữ ký số của kbnn giải pháp tích hợp chữ ký số tích hợp chữ ký số vào phần mềm

 

Tài liệu tich hợp API 

 

INTRODUCTION

This doument describes in details the API of Remote Signing. In this version, API is now including 8 functions:

 

  • info
  • auth/login
  • auth/revoke
  • credentials/list
  • credentials/info
  • credentials/sendOTP
  • credentials/authorize
  • credentials/extendTransaction
  • signature/signHash
  • owner/list
  • owner/assign

 

  • Target

Banks, Finance/Insurance companies who wants to apply digital signature for loan approval.

 

  • Abbreviation

Word

Description

CA

Certification Authority

PKI

Public Key Infrastructure

M

Mandatory

O

Optional

RD

Required Conditional

AP

Application Provider

RP

Relying Party

SCAL1

Sole Control Assurance Level 1

SCAL2

Sole Control Assurance Level 2

RS

Remote Signing

SAD

Signature Activation Data

 

 

 

 

  1. API SPECIFICATION
    • info

This method returns the information of Remote Signing such as: the version of remote signing service, the methods which are supported by the service. This method doesn’t need client authentication.

Sample Request:

POST /rssp/v1/info HTTP/1.1

HOST: rssp.mobile-id.vn

Content-Type: application/json

 

{}

Sample Response:

{

    "version": "1.0.0"

    "name": "Remote Signing Services",

    "description": "An efficient remote signature service",

    "logo": "https://rssp.mobile-id.vn/images/logo.png",

    " languages": [

        "VN", "EN"

    ],

    " authTypes": [

        "PASSCODE","OTPSMS","OTPEMAIL"

    ],

    "methods": [

        "auth/login","auth/revoke",

        "credentials/list","credentials/info",

        "credentials/sendOTP","credentials/authorize"

        "credentials/extendTransaction","signature/signHash",

        "owner/list","owner/assign"

]

   

}

Attributes description:

Request Attributes

No

Name

Type

Require

Description

 

 

 

 

 

 

Response Attributes

No

Name

Type

Require

Description

1

version

String

M

The current version of Remote Signing

2

name

String

M

The name of the service

3

description

String

O

The description of the service

4

logo

String

O

The logo image URL of the service

5

languages

String []

M

The languages are supported by the service

6

authTypes

String []

M

Authorization methods are supported by the service. These values RSSP support:

-      Basic: authorization by user and password.

-      SSL2: authorization by pkcs7 signature.

-      OAUTH2: RSSP support oauth2.

 

7

oauth2

String

RC

The base URI of the OAuth 2.0 authorization server endpoint supported by the remote service for service authorization and/or credential authorization. The parameter SHALL be present in any of the following cases:

• The authType parameter contains “oauth2code” or “oauth2client”;

• The remote service supports the value “oauth2code” for the authMode parameter returned by credentials/info.

8

methods

String []

M

Functions are supported by the service

 

  • auth/login

In this function, client should provide the credential information issued by service provider for the first authentication. Server checks client information and returns an access token to client to use for the subsequent API requests within the same session. For the further API once login succeed, client must provide this access token in the request.

These authentication factors SHALL be passed directly in the HTTP header with name Authorization, it MAY have multi authentication factors separated by comma. RSSP accept two value as follow:

SSL2 <credential>, Basic <credential>

  • The SSL2 credential is authentication factor to authenticate RP server. It is constructed in following format:

BASE64-encode(username:password:signature:timestamp:pkcs1Signature)

  • username, password, signature is provided by service provider
  • pkcs1Signature is calculated based on username, password, signature and timestamp.
  • timestamp is the current client date-time. It could be in yyyyddmmHHMMss format or Unix epoch time likes 1570182293561.

Example:

  • username: MOBILE_ID
  • password: 12345678
  • signature:
  • pkcs1Signature:
  • timestamp:
  • MOBILE_ID:12345678:signature:timestamp:pkcs1Signature
  • Credential: TU9CSUxFX0lEOjEyMzQ1Njc4OnNpZ25hdHVyZTpwa2NzMVNpZ25hdHVyZTp0aW1lc3RhbXA=
  • Basic credential is authentication factor to authenticate end-user, this is OPTIONAL using for RPs not manage end-user. It is constructed in following format:

BASE64-encode(usertype:username:password)

  • usertype is one in three values:
    • 1 – USERNAME: if username is username.
    • 2 – PERSONAL-ID: if username is people’s identity card.
    • 3 – PASSPORT-ID: if username is passport identity card.
    • 4 – CITIZEN-IDENTITY-CARD: if username is citizen identity card.
    • 5 – BUDGET-CODE: if username is budget code.
    • 6 – TAX-CODE: if username is tax code.
  • username is value issued by RSSP (in registration progress) or user’s identify card or tax code.
  • password is secret value memorized by end-user.

Example:

  • usertype: USERNAME
  • username: user
  • password: 123456
  • Credential: VVNFUk5BTUU6dXNlcjoxMjM0NTY=

The alternative way to re-authenticate the user after an access token has expired is using the refresh token. At this time, the authorization header should be in format:

Bearer <refresh token>

Sample Request:

POST /rssp/v1/auth/login HTTP/1.1

HOST: rssp.mobile-id.vn

Authorization: SSL2 dXNlcm5hbWU6cGFzc3dvcmQ6c2lnbmF0dXJlOnBrY3MxU2lnbmF0dXJlOnRpbWVzdGFtcA==, Basic VVNFUk5BTUU6dXNlcjoxMjM0NTY=

Content-Type: application/json

 

{

    "relyingParty": "MOBILE-ID",

    "relyingPartyBillCode": "MOBILE-ID-190611194921-3-559950",

    "rememberMe": true,

    "language": "EN"

}

Sample Response:

{

    "responseCode": 0,

    "responseMessage": "Successfully",

    "billCode": "MOBILE-ID-190611194921-3-559951",

    "accessToken": "VGhpcyBpcyBhY2Nlc3NUb2tlbg==",

    "refreshToken": "cmVmcmVzaFRva2VuIGlzIG1lLg==",

    "expiresIn": 60,

    "username": "user"

}

Attributes description:

Request Attributes

No

Name

Type

Require

Description

1

relyingParty

String

M

In case of many services are running on Remote Signing. Relying Party is used to determine which client is calling to.

2

relyingPartyBillCode

String

O

Relying Party’s billcode.

3

billCode

String

O

Request’s bill code.

4

rememberMe

Boolean

O

A Boolean value typically corresponding to an option that the user may activate during the authentication phase to "stay signed in" and maintain a valid authentication across multiple sessions:

§  "true": if the remote service supports user re-authentication, a refreshToken will be returned and the signature application may use it on a subsequent call to this method instead of passing an Authorization header.

§  "false": a refreshToken will not be returned.

If the parameter is omitted, it will default to "false".

5

clientInfo/iccid

String

O

Client machine information. RS will use this one to manage working session binding with a replyingParty or owner.

6

clientInfo/imei

String

O

Client machine information. RS will use this one to manage working session binding with a replyingParty or owner.

7

clientInfo/macAddr

String

O

Client machine information. RS will use this one to manage working session binding with a replyingParty or owner.

8

language

String

O

Possible value: VN, EN

 

Response Attributes

No

Name

Type

Require

Description

1

responseCode

int

M

Code describes the result.

Expected: 0

2

responseMessage

String

M

Message describes the result in detail.

3

billCode

String

M

Receipt for each transaction

4

accessToken

String

M

The short-lived service access token used to authenticate the subsequent API requests within the same session. When receiving an API call with an expired token, the remote service will return an error and require a new auth/login request.

5

refreshToken

String

RC

The long-lived refresh token used to re-authenticate the user on the subsequent session. The value is returned if the rememberMe parameter in the request is "true" and the remote service supports user re-authentication.

6

expiresIn

int

O

The lifetime in seconds of the service access token. If omitted, the default expiration time is 3600 seconds.

7

remainingCounter

int

RC

Number of remaining attempts of login, only return if basic available in header Authorization and password of owner is wrong.

8

temporaryLockTime

Int

RC

Owner lockout time, only try again when the time is up.  In seconds.

9

ownerInfo/fullName

String

RC

Full name of account.

10

ownerInfo/phone

String

O

Phone of account.

11

ownerInfo/email

String

O

Email of account.

12

ownerInfo/oauth2

String

O

OAUTH2 account information.

Credential information

No

Name

Type

Require

Description

1

username

String

M

Username of relyingParty provided by Remote Signing

2

password

String

M

Password of relyingParty provided by Remote Signing

3

signature

String

M

Signature of relyingParty provided by Remote Signing

4

pkcs1Signature

String

M

Value is signed from client private key. Key is generated and provided by Remote Signing

Value=username + password + signature + timestamp

5

timestamp

String

M

Current timestamp, format in yyyyddmmHHMMss format or Unix epoch time likes 1570182293561.

                 

 

  • auth/revoke

This function will revoke the token for request authentication. If the token type is 1 (one), the RS will not validate the refresh token and all access tokens based on the same authorization grant. If the token type us 0 (zero), the RS will not validate the access token but it will not revoke any existing refresh token based on the same authorization grant.

Note 01: Authorization info in the header of the request is presented in following format:

KEY=Authorization, VALUE=Bearer <access token or refresh token>

(Access token or refresh token is obtained from login function which is defined in session 2.2).

Sample Request:

POST /rssp/v1/auth/revoke HTTP/1.1

HOST: rssp.mobile-id.vn

Authorization: Bearer VGhpcyBpcyBhY2Nlc3NUb2tlbg==

Content-Type: application/json

 

{

    "relyingParty": "MOBILE-ID",

    "relyingPartyBillCode": "MOBILE-ID-190611194921-3-559950",

    "tokenType": 0,

    "token": "VGhpcyBpcyBhY2Nlc3NUb2tlbg==",

    "language": "EN"

}

Sample Response:

{

    "responseCode": 0,

    "responseMessage": "Successfully",

    "billCode": "MOBILE-ID-190611194921-3-559951"

}

Attributes description:

Request Attributes

No

Name

Type

Require

Description

1

relyingPartyBillCode

String

O

Relying Party’s billcode

2

billCode

String

O

Request’s bill code.

3

tokenType

int

O

The type of token submitted for revocation. The possible values are:

0: access token

1: refresh token

2: SAD token

If token type is omitted. RS understands the token received is access token.

4

token

String

M

The token will be revoked

5

language

String

O

Possible value: VN, EN

6

agreementUUID

String

RS

Contract identifier, this value is required when tokenType is 2 (to revoke SAD token) and access_token in Authorization header is retrieved from login with SSL2 Only.

7

thumbprint

String

RC

Thumbprint of certificate, this value is required when tokenType is 2 (to revoke SAD token).

 

Response Attributes

No

Name

Type

Require

Description

1

responseCode

int

M

Code describes the result.

Expected: 0

2

responseMessage

String

M

Message describes the result in detail.

3

billCode

String

M

Receipt for each transaction

 

  • credentials/list

This function will return the brief information of certificates which are belonged to an owner. The certificate information doesn’t have full BASE64 certificate encoded. There is enough information for client to identify the certificate.

Note 01: Authorization info in the header of the request is presented in following format:

KEY=Authorization, VALUE=Bearer <access token or refresh token>

(Access token or refresh token is obtained from login function which is defined in session 2.2).

Sample Request:

POST /rssp/v1/credentials/list HTTP/1.1

HOST: rssp.mobile-id.vn

Authorization: Bearer VGhpcyBpcyBhY2Nlc3NUb2tlbg==

Content-Type: application/json

 

{

    "relyingParty": "MOBILE-ID",

    "relyingPartyBillCode": "MOBILE-ID-190611194921-3-559950",

    "agreementUUID": FEC#201910281308,

    "language": "EN"

}

Sample Response:

{

    "responseCode": 0,

    "responseMessage": "Successfully",

    "billCode": "MOBILE-ID-190611194921-3-559951"

    "certificates": [

        {

            "certificateID": 84902,

            "issuerDN": "<X.500_issuer_DN_printable_string>",

            "serialNumber": "5AAC41CD8FA22B953640",

            "thumbprint": "86f7e437faa5a7fce15d1ddcb9eaeaea377667b8",

            "subjectDN": "<X.500_subject_DN_printable_string>",

            "validFrom": "20180101100000Z",

            "validTo": "20190101095959Z",

           

        },

        {

            "certificateID": 84899,

            "issuerDN": "<X.500_issuer_DN_printable_string>",

            "serialNumber": "5AAC41CD8FA22B953640",

            "thumbprint": "86f7e437faa5a7fce15d1ddcb9eaeaea377667b8",

            "subjectDN": "<X.500_subject_DN_printable_string>",

            "validFrom": "20180101100000Z",

            "validTo": "20190101095959Z",

           

        }

    ]

}

Attributes description:

Request Attributes

No

Name

Type

Require

Description

1

relyingPartyBillCode

String

O

Relying Party’s billcode

2

billCode

String

O

Request’s bill code.

3

agreementUUID

String

RC

The uuid of agreement, this value was returned from the agreement registration (SOAP API).

This param require when access_token is retrieved from login with SSL2 Only.

4

searchConditions/certificateStatus

String

O

State of certificate. The possible values are:

·         “ALL”,

·         “GOOD”,

·         “REVOKED”.

Default value is “ALL”.

5

searchConditions/cetificatePurpose

String

O

Purpose usage of certificate. The possible values are:

·         “ALL”,

·         “SIGNATURE”,

·         “ENCRYPTION”.

Default value is “ALL”

6

certificateInfo

Boolean

O

Returns the details of certificate information. This is useful in case the signature application wants to retrieve some details of the certificate without having to decode it first. The default value is “false”, so if the parameter is omitted then the information will not be returned.

7

language

String

O

Possible value: VN, EN

 

Response Attributes

No

Name

Type

Require

Description

1

responseCode

int

M

Code describes the result.

Expected: 1007

2

responseMessage

String

M

Message describes the result in detail.

3

billCode

String

M

Receipt for each transaction

4

certificates/issuerDN

String

RC

The Issuer Distinguished Name from the X.509v3 end entity certificate as UTF-8-encoded character string. This value will be returned when certificateInfo is “true”.

5

certificates/serialNumber

String

RC

The Serial Number from the X.509v3 end entity certificate represented as hex-encoded string format. This value will be returned when certificateInfo is “true”.

6

certificates/thumbprint

String

M

The certificate thumbprint. This value is calculated by hashing the encoded certificate binary. The SHA-256 algorithm is usually used to hash this data.

7

certificates/subjectDN

String

RC

The Subject Distinguished Name from the X.509v3 end entity certificate as UTF-8-encoded character string. This value will be returned when certificateInfo is “true”.

8

certificates/validFrom

String

RC

The validity start date from the X.509v3 end entity certificate as character string. This value will be returned when certificateInfo is “true”.

9

certificates/validTo

String

RC

The validity end date from the X.509v3 end entity certificate as character string. This value will be returned when certificateInfo is “true”.

10

certificate/certificateProfile/name

String

RC

Name of certificate’s profile. This value will be returned when certificateInfo is “true”.

11

certificate/certificateProfile/description

String

RC

Description of certificate’s profile.  This value will be returned when certificateInfo is “true”.

12

certificates/purpose

String

RC

Purpose usage of certificate. This value will be returned when certificateInfo is “true”.

13

certificates/numSignatures

int

RC

A number equal or higher to 1 representing the maximum number of signatures that can be created with this credential with a single authorization request. This value will be returned when certificateInfo is “true”.

14

certificates/remainingSigningCounter

int

M

Remaining signing counter of this certificate.

§  -1: unlimited.

§  0: out of signing.

15

certificates/version

int

M

The certificate version, the third application must rely on this value to decide perform credentials/info for update the certificate info.

  • credentials/info

This function will return the credential, identity information and the public key certificate or the certificate chain associated to the client. It also provides which authentication method of client supported.

Note 01: Authorization info in the header of the request is presented in following format:

KEY=Authorization, VALUE=Bearer <access token or refresh token>

(Access token or refresh token is obtained from login function which is defined in session 2.2).

Sample Request:

POST /rssp/v1/credentials/info HTTP/1.1

HOST: rssp.mobile-id.vn

Authorization: Bearer VGhpcyBpcyBhY2Nlc3NUb2tlbg==

Content-Type: application/json

 

{

    "relyingParty": "MOBILE-ID",

    "relyingPartyBillCode": "MOBILE-ID-190611194921-3-559950",

    "certificateID": 5,

    "certificates": "chain",

    "certificateInfo": true,

    "authenticationInfo": true,

    "language": "EN"

}

Sample Response:

{

    "responseCode": 0,

    "responseMessage": "Successfully",

    "billCode": "MOBILE-ID-190611194921-3-559951",

    "certificate": {

        "status": "valid",

        "certificates": [

            "<Base64-encoded_X.509_end_entity_certificate>",

            "<Base64-encoded_X.509_intermediate_CA_certificate>",

            "<Base64-encoded_X.509_root_CA_certificate>"

        ],

        "issuerDN": "<X.500_issuer_DN_printable_string>",

        "serialNumber": "5AAC41CD8FA22B953640",

        "thumbprint": "86f7e437faa5a7fce15d1ddcb9eaeaea377667b8",

        "subjectDN": "<X.500_subject_DN_printable_string>",

        "validFrom": "20180101100000Z",

        "validTo": "20190101095959Z",

        "sharedMode": 1,

        "createdRP": "MOBILE-ID"

    },

    "authorizeMethod": [

        1,

        2,

        4

    ],

    "numSignatures": 5,

    "authMode": "explicit",

    "SCAL": 2,

    "language": "EN"

}

Attributes description:

Request Attributes

No

Name

Type

Require

Description

1

relyingPartyBillCode

String

O

Relying Party’s billcode

2

billCode

String

O

Request’s bill code.

3

agreementUUID

String

RC

The uuid of agreement, this value was returned from the agreement registration (SOAP API).

This param require when access_token is retrieved from login with SSL2 Only.

4

thumbprint

String

M

The certificate thumbprint. This value is calculated by hashing the encoded certificate binary. The SHA-256 algorithm is usually used to hash this data.

5

certificates

String

O

Specifies which certificates from the certificate chain will be return in the response.

§  “none”: No certificate will be returned.

§  “single”: Only signer certificate will be returned.

§  “chain”: The full certificate chain will be returned.

If this attribute is omitted, the the default is “single” will be treated.

6

certificateInfo

Boolean

O

Returns the details of certificate information. This is useful in case the signature application wants to retrieve some details of the certificate without having to decode it first. The default value is “false”, so if the parameter is omitted then the information will not be returned.

7

authenticationInfo

Boolean

O

Returns the authentication method which is supported for a client. The default value is “false”, so if the parameter is omitted then the information will not be returned.

8

language

String

O

Possible value: VN, EN

 

Response Attributes

No

Name

Type

Require

Description

1

responseCode

int

M

Code describes the result.

Expected: 1007

2

responseMessage

String

M

Message describes the result in detail.

3

billCode

String

M

Receipt for each transaction

4

certificate/status

String

O

The status of signer certificate which is binding with the client. Some examples responses:

§  “not enrolled”

§  “valid”

§  “unknown”

§  “revoked”

§  “expired”

5

certificate/certificates

String[]

RC

One or more Base64-encoded X.509v3 certificates from the certificate chain. If the certificates parameter is “chain”, the entire certificate chain SHALL be returned with the end entity certificate at the beginning of the array. If the certificates parameter is “single”, only the end entity certificate SHALL be returned. If the certificates parameter is “none”, this value SHALL NOT be returned.

6

certificate/issuerDN

String

RC

The Issuer Distinguished Name from the X.509v3 end entity certificate as UTF-8-encoded character string. This value will be returned when certificateInfo is “true”.

7

certificate/serialNumber

String

RC

The Serial Number from the X.509v3 end entity certificate represented as hex-encoded string format. This value will be returned when certificateInfo is “true”.

8

certificate/thumbprint

String

M

The certificate thumbprint. This value is calculated by hashing the encoded certificate binary. The SHA-256 algorithm is usually used to hash this data.

9

certificate/subjectDN

String

RC

The Subject Distinguished Name from the X.509v3 end entity certificate as UTF-8-encoded character string. This value will be returned when certificateInfo is “true”.

10

certificate/validFrom

String

RC

The validity start date from the X.509v3 end entity certificate as character string. This value will be returned when certificateInfo is “true”.

11

certificate/validTo

String

RC

The validity end date from the X.509v3 end entity certificate as character string. This value will be returned when certificateInfo is “true”.

12

certificate/certificateProfile/name

String

M

Name of certificate’s profile. This value will be returned when certificateInfo is “true”.

13

certificate/certificateProfile/description

String

M

Description of certificate’s profile.  This value will be returned when certificateInfo is “true”.

14

certificate/purpose

String

O

Purpose usage of the certificate.

15

sharedMode

String

O

Which sharing mode will be used in the Remote Signing. The possible values are:

·         “PRIVATE_MODE”

·         “RP_SHARED_MODE”

·         “AGREEMENT_SHARED_MODE”

Default value is PRIVATE_MODE. It’s meant once Relying Party don’t use this parameter, the PRIVATE_MODE is used instead

16

createdRP

String

O

This is Relying Party name. It indicates that the certificate was created by that RP. It is helpful if the certificate is shared to an agreement from different RP.

17

numSignatures

int

M

A number equal or higher to 1 representing the maximum number of signatures that can be created with this credential with a single authorization request.

18

authModeSupported

String[]

M

Specifies one of the authorization modes.

§  “EXPLICIT/PIN”: the authorization process is managed by the signature application, authentication method is passcode.

§  “EXPLICIT/OTP-SMS”: the authorization process is managed by the signature application, authentication method is otp sms.

§  “EXPLICIT/OTP-EMAIL”: the authorization process is managed by the signature application, authentication method is otp email.

§  “IMPLICIT/CYBER-ID”: the authorization process is managed by the remote service autonomously. Authentication factors are managed by the RSSP by interacting directly with the user, and not by the signature application.

§  “IMPLICIT/BIP-CATTP”: the authorization process is managed by Cyber-ID – a mobile application – which could interact to PKI USIM for signing.

§  “EXPLICIT/OTP-MOBILE”: the authorization process is managed by OTP Mobile Application.

§  “OAUTH2”: not implement yet.

19

authMode

String

M

One value in values of No.15, is authorization mode activated at moment. To change must make by RSSP administrator.

20

SCAL

int

O

§  1: The hash to-be-signed is not linked to the signature activation data.

§  2: The hash to-be-signed is linked to the signature activation data.

21

contractExpirationDt

String

O

Contract's expiration date, to reissue certificate for compensation.

22

remainingSigningCounter

int

O

Remaining signing counter of this certificate.

§  -1: unlimited.

§  0: out of signing.

23

authorizationEmail

String

RC

Authorization email. This value will be returned when authenticationInfo is “true”.

24

authorizationPhone

String

RC

Authorization phone. This value will be returned when authenticationInfo is “true”.

25

passphraseDefault

boolean

RC

True if passphrase is default and user must change passphrase before do cryptography.

Note: authMode is an array combined all authorization method which support for certificateID.

  • credentials/sendOTP

This method requests a One-Time Password (OTP) for client authentication. Based on client credential, Remote Signing service uses OTP generation mechanism to create and send OTP to end-user through agreed channel such as Email, SMS.

Note 01: Authorization info in the header of the request is presented in following format:

KEY=Authorization, VALUE=Bearer <access token or refresh token>

(Access token or refresh token is obtained from login function which is defined in session 2.2).

Sample Request:

POST /rssp/v1/credentials/sendOTP HTTP/1.1

HOST: rssp.mobile-id.vn

Authorization: Bearer VGhpcyBpcyBhY2Nlc3NUb2tlbg==

Content-Type: application/json

 

{

    "relyingParty": "MOBILE-ID",

    "relyingPartyBillCode": "MOBILE-ID-190611194921-3-559950",

    "certificateID": 84902,

    "authorizeMethod": 1,

    "notificationTemplate": "RemoteSigning: Your authorization code {AuthorizeCode}",

    "notificationSubject": "Remote Signing - Your authorization code",

    "language": "EN"

}

Sample Response:

{

    "responseCode": 1007,

    "responseMessage": "Request accepted",

    "billCode": "MOBILE-ID-190611194921-3-559951"

}

Attributes description:

Request Attributes

No

Name

Type

Require

Description

1

relyingPartyBillCode

String

O

Relying Party’s billcode.

2

billCode

String

O

Request’s bill code.

3

agreementUUID

String

RC

The uuid of agreement, this value was returned from the agreement registration (SOAP API).

This param require when access_token is retrieved from login with SSL2 Only.

4

thumbprint

String

M

The certificate thumbprint. This value is calculated by hashing the encoded certificate binary. The SHA-256 algorithm is usually used to hash this data.

5

notificationTemplate

String

O

Message contains Authorize Code will be sent to customer’s Phone/Email.

Authorize Code is generated on Remote Signing and embedded into template.

E.g: Your authorization code: {AuthorizeCode}. Authorize Code is valid within 300 seconds.

6

notificationSubject

String

O

This parameter is used as Email subject for signing authorization. If OTP Email is used, this parameter is mandatory

It should be used in case of the Remote Signing will use owned SMTP to send OTP Email to customer.

7

language

String

O

Possible value: VN, EN

 

Response Attributes

No

Name

Type

Require

Description

1

responseCode

int

M

Code describes the result.

Expected: 1007

2

responseMessage

String

M

Message describes the result in detail.

3

billCode

String

M

Receipt for each transaction

4

temporaryLockTime

Int

RC

Certificate lockout time, only try again when the time is up.  In seconds.

 

  • credentials/authorize

The function requests the Remote Signing to verify the client credential, it is not only OTP but also the PIN (or PassCode) supported. Once authorization code is valid, Remote Signing will respond the Signature Activation Data (SAD) which is required to authorize the signatures/SignHash method.

Note 01: Authorization info in the header of the request is presented in following format:

KEY=Authorization, VALUE=Bearer <access token or refresh token>

(Access token or refresh token is obtained from login function which is defined in session 2.2).

Note 02: Once the server successfully authorized the credentials, a session will be created binding with an agreementUUID/CertificateID, this session contains IP/Mac Address of the client. Another client using the same agreementUUID/CertificateID on another computer cannot be processed by Remote Signing service until this session released. Session will be released by calling auth/revoke with tokenType is SAD token, as defined in session 2.3.

Note 03: The HTTP-response has the header with name rssp-entity-name, RP must send it in HTTP-request header with name rssp-entity-name of these requests: credentials/extendTransaction, signature/signHash.

Sample Request:

POST /rssp/v1/credentials/authorize HTTP/1.1

HOST: rssp.mobile-id.vn

Authorization: Bearer VGhpcyBpcyBhY2Nlc3NUb2tlbg==

Content-Type: application/json

 

{

    "relyingParty": "MOBILE-ID",

    "relyingPartyBillCode": "MOBILE-ID-190611194921-3-559950",

    "certificateID": 84902,

    "billCode": "MOBILE-ID-190611194921-3-559951",

    "authorizeCode": "654321",

    "authorizeMethod": 1,

    "numSignatures": 2,

    "hash": [

        "532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25",

        "bd9c74f0a16ddc8c877651085e161824be897aa129604326fe67bc2a41316b77"

    ],

    "hashAlgorithm": "sha-256",

    "language": "EN",

    "notificationTitle":"Dịch vụ SMART-ID",

    "notificationMessage":"Yêu cầu cần được xác thực",

    "messageCaption":"Đăng nhập dịch vụ VPN",

    "transactionInfo":{

        "Dịch vụ":"VPN của Mobile-ID",

        "Địa điểm":"Hồ Chí Minh"

    },

    "clientInfo":{

        "iccid":"8991101200003204514",

        "imei":"990000862471854",

        "macAddr":"00:0a:95:9d:68:16"

    },

    "message":"Complete the authentication to use the service",

    "logoURI":"https://rssp.mobile-id.vn/images/mobile-id_logo_159x50.png",

    "bgImageURI":"https://rssp.mobile-id.vn/images/background02.jpg",

    "rpIconURI":"https://rssp.mobile-id.vn/images/mobile-id_logo_159x50.png",

    "rpName":"MOBILE_ID",

    "confirmationPolicy":"PIN",

    "expirationDuration":3,

    "vcEnabled":true,

    "acEnabled":false,

    "messagingMode":1,

}

Sample Response:

{

    "responseCode": 0,

    "responseMessage": "Successfully",

    "billCode": "MOBILE-ID-190611194921-3-559951",

    "SAD": "_TiHRG-bAH3XlFQZ3ndFhkXf9P24/CKN69L8gdSYp5_pw",

    "expiresIn": 60,

    "remainingCounter": 5

}

Attributes description:

Request Attributes

No

Name

Type

Require

Description

1

relyingPartyBillCode

String

O

Relying Party’s billcode.

2

billCode

String

O

Request’s bill code.

3

agreementUUID

String

RC

The uuid of agreement, this value was returned from the agreement registration (SOAP API).

This param require when access_token is retrieved from login with SSL2 Only.

4

thumbprint

String

M

The certificate thumbprint. This value is calculated by hashing the encoded certificate binary. The SHA-256 algorithm is usually used to hash this data.

5

authorizeCode

String

RC

Authorize Code provided by customer. It could be PIN (PassCode) or OTP. It is required when authMode returned in credentials/info is EXPLICIT/PIN or EXPLICIT/OTP-SMS or EXPLICIT/OTP-EMAIL or EXPLICIT/OTP-MOBILE.

6

language

String

O

Possible value: VN, EN

7

numSignatures

int

M

The number of signatures to authorize. Multi-signature transactions can be obtained by using a combination of passing an array of hash values and calling the signatures/signHash method

8

hash

String[]

RC

One or more Base64-encoded hash values to be signed. It is required when SCAL is level 2.

9

hashAlgorithm

String

Sản phẩm khác

CẢNG HẢI PHÒNG CHIA SẺ KINH NGHIỆM ĐỂ CHUYỂN ĐỔI SỐ THÀNH CÔNG

CẢNG HẢI PHÒNG CHIA SẺ KINH NGHIỆM ĐỂ CHUYỂN ĐỔI SỐ THÀNH CÔNG

CHI TIẾT
CẢNG HẢI PHÒNG CHIA SẺ KINH NGHIỆM ĐỂ CHUYỂN ĐỔI SỐ THÀNH CÔNG
Tại Hội thảo “Chuyển đổi số ngành Cảng biển và Logistics” do Viettel Solutions đồng tổ chức với Sở Thông tin và Truyền thông (Sở TT&TT) thành phố Hải Phòng, đại diện Công ty Cổ phần Cảng Hải Phòng đã chia sẻ về kinh nghiệm triển khai thành công chuyển đổi số trong lĩnh vực vận chuyển & hậu cần, dựa trên chính hành trình của đơn vị.
Cảng Hải Phòng là một trong những đơn vị logistics tiên phong “mở đường” đổi mới trong điều hành, chuyển đổi số tại khu vực phía Bắc. Chuyển đổi số đã giúp cảng Hải Phòng nâng tỷ lệ khách hàng thực hiện dịch vụ cảng điện tử ePort đạt 91,78%, tỷ lệ khách hàng sử dụng cổng thông minh Smart gate là 94,5%, tương tác với gần 12.500 lái xe, 1.423 doanh nghiệp vận tải sử dụng và bỏ toàn bộ chứng từ giao nhận,...
Đại diện doanh nghiệp cho biết, muốn chuyển đổi số thành công, cần quan tâm đến những yếu tố sau:
Thống nhất chuyển đổi nhận thức, tăng cường vai trò lãnh đạo, chỉ đạo để thực hiện nhiệm vụ CĐS
Xây dựng chiến lược, đề án chuyển đổi số, kế hoạch phân kỳ thực hiện
Thay đổi quy trình, ban hành quy định, chính sách về chuyển đổi số
Phát triển hạ tầng, công nghệ số
Đầu tư, phát triển nền tảng số
Tạo niềm tin, bảo đảm an toàn, an ninh mạng
Truyền thông về chuyển đổi số
Xây dựng nguồn lực thực hiện chuyển đổi số
Chuẩn bị nguồn lực tài chính thực hiện chuyển đổi số
Hợp tác nghiên cứu, phát triển và đổi mới sáng tạo
Nhờ đó, cảng Hải Phòng đã chuyển đổi số thành công ở hầu hết các trụ cột chính của doanh nghiệp, như:
Chuyển đổi số tại tuyến đầu càu: Tự động chụp ảnh, nhân diện tình trạng vỏ container tại tuyến cầu tàu; Ứng dụng camera đầu cần phục vụ cho giám sát, ghi nhận hoạt điều hành, khai thác tại tuyến cầu tàu; Ứng dụng hệ thống định vị dẫn hướng tự động (D.GPS) lắp đặt trên các RTG/Reach Stacker…
Chuyển đổi số tại tuyến cổng cảng: Cổng thông minh (Smart gate) với công nghệ nhận dạng; Tích hợp với các phần mềm kiểm tra và giao nhận tự động
Chuyển đổi số lĩnh vực khách hàng và quản lý tập trung: Dịch vụ cảng điện tử (ePort); App Driver tương tác giữa cảng với doanh nghiệp vận tải và các lái xe; Phần mềm chăm sóc khách hàng (CRM)
 Cùng nhiều hoạt động chuyển đổi số đang và sẽ tiếp tục thực hiện: Đầu tư xây dựng các Bến số 3 và số 4 thuộc Cảng cửa ngõ Quốc tế Hải Phòng; Xây dựng mô hình cảng thông minh tại Bến số 3, số 4 cảng cửa ngõ quốc tế Hải Phòng…
-----
HAI PHONG PORT SHARES EXPERIENCE FOR SUCCESSFUL DIGITAL TRANSFORMATION
At the seminar "Digital Transformation in the Maritime Port and Logistics Industry" jointly organized by Viettel Solutions and the Department of Information and Communications (DoIT) of Hai Phong City, representatives from Hai Phong Port Joint Stock Company shared their successful experience in implementing digital transformation in the transportation and logistics sector, based on the unit's own journey.
Hai Phong Port has been a pioneering logistics entity leading the way in innovation in operations and digital transformation in the northern region. Digital transformation has enabled Hai Phong Port to achieve a customer service rate of 91.78% through the ePort electronic port service, a 94.5% utilization rate of the Smart Gate intelligent gate, interaction with nearly 12,500 drivers, and 1,423 transport businesses utilizing paperless documentation.
The enterprise representative highlighted that for successful digital transformation, attention should be given to the following factors:
 Unified awareness of digital transformation, strengthening leadership roles and guidance to carry out the digital transformation mission.
 Developing a digital transformation strategy, plan, and phased implementation schedule.
 Changing processes, issuing regulations, and policies on digital transformation.
 Developing digital infrastructure and technology.
 Investing in and developing digital platforms.
 Building trust, ensuring cybersecurity.
 Communication about digital transformation.
 Building resources for digital transformation implementation.
 Preparing financial resources for digital transformation.
 Collaborating in research, development, and innovative creativity.
As a result, Hai Phong Port has successfully digitized most of the key pillars of the business, including:
 Digitizing the front-line route: Automated image capture, container status identification on the rail route; Application of head cameras for monitoring and recording operational activities at the front line; Implementation of an automatic guiding navigation system (D.GPS) installed on RTG/Reach Stacker equipment.
 Digitizing the port gate route: Smart gate with recognition technology; Integration with automatic inspection and documentation systems.
 Digitizing customer service and centralized management: Electronic port service (ePort); Driver App facilitating interaction between the port, transport businesses, and drivers; Customer Relationship Management (CRM) software.
 Continued digital transformation activities: Investment in constructing Berths 3 and 4 at the International Gateway Port Hai Phong; Building a smart port model at Berths 3 and 4 of the International Gateway Port Hai Phong...

 

 

CẢNG HẢI PHÒNG CHIA SẺ KINH NGHIỆM ĐỂ CHUYỂN ĐỔI SỐ THÀNH CÔNG

6 LỢI ÍCH CỦA DATA ANALYTICS ĐỐI VỚI NGÀNH VẬN TẢI VÀ LOGISTICS

6 LỢI ÍCH CỦA DATA ANALYTICS ĐỐI VỚI NGÀNH VẬN TẢI VÀ LOGISTICS

CHI TIẾT
6 LỢI ÍCH CỦA DATA ANALYTICS ĐỐI VỚI NGÀNH VẬN TẢI VÀ LOGISTICS
Trong kỷ nguyên số hiện nay, Phân tích dữ liệu (Data Analytics) được coi là năng lực nền tảng trong quá trình chuyển đổi số cho doanh nghiệp.
Các chuyên gia dự đoán, 5 năm tới, Data Analytics sẽ tiếp tục tác động lớn ở các ngành như: Bán lẻ và Hàng tiêu dùng nhanh, Khu vực công, Vận tải và Logistics, BFSI,..
Đối với ngành Vận tải và Logistics, Data Analytics đem lại 6 lợi ích nổi bật là:
• Tối ưu công tác điều độ cảng: Dựa vào lịch tàu cập bến, kích thước tàu tại cảng để giảm thiểu độ trễ và thời gian giải phóng tàu.
• Quản lý tài sản: Thu thập thông tin về trạng thái của container rỗng tại cảng, hỗ trợ đưa ra quyết định bảo trì sửa chữa nhằm tối ưu chi phí.
• Theo dõi việc vận chuyển hàng hóa: Giảm tải rỗng giữa các cảng với nhau.
• Theo dõi việc vận chuyển hàng hóa, lượng container hàng, container rỗng, hỗ trợ ra quyết định giảm tải container.
• Quản lý vòng đời container: Phân tích vòng đời của 1 container từ khi nhập bãi, xuất bãi, sửa chữa.
• Quản lý kho bãi: Theo dõi thời gian tồn trong kho bãi của container hàng để có các chính sách giá theo thời gian tồn bãi phù hợp.
• Quản lý đội xe Rơ moóc: Người điều hành theo dõi số lượng xe còn, lượng xe đang lưu hành để dễ dàng điều phối.
Với nền tảng hạ tầng số lớn nhất Việt Nam và sở hữu các công nghệ 4.0 như AI, Big Data và IoT, SmartSolutions cung cấp giải pháp Hồ Dữ liệu (Data Lake), giúp các doanh nghiệp Vận tải và Logistics phân tích và dự báo kết quả kinh doanh dễ dàng, phân tích để tối ưu vị trí kho bãi, đưa ra chiến lược giá, dự báo hỏng hóc, bảo dưỡng vận hành, phân loại khách hàng.
Nhờ đó, các doanh nghiệp Vận tải và Logistics có góc nhìn toàn cảnh về tình hình kinh doanh, tối ưu hoạt động điều hành và hiểu chân dung khách hàng một cách rõ ràng hơn.
-----
6 BENEFITS OF DATA ANALYTICS FOR THE TRANSPORTATION AND LOGISTICS INDUSTRY
In digital era, Data Analytics is considered a fundamental competency in the digital transformation process for businesses.
Experts predict that in the next 5 years, Data Analytics will continue to have a major impact in some industries such as: Retail and FMCG, Public Sector, Transportation and Logistics, BFSI, etc.
For the Transportation and Logistics industry, Data Analytics brings 6 outstanding benefits:
• Optimize port dispatching work: Based on ship arrival schedule and ship size at port to minimize delay and ship release time.
• Asset management: Collect information about the status of empty containers at the port, support making maintenance and repair decisions to optimize costs.
• Track the transportation of goods: Reduce empty loads between ports.
• Monitor the transportation of goods, the amount of cargo containers, empty containers, and support decision-making to reduce container load.
• Container life cycle management: Analyze the life cycle of a container from import, export, and repair.
• Warehouse management: Monitor the inventory time of containers to have appropriate pricing policies based on inventory time.
• Trailers management: Operators track the number of vehicles available and the number of vehicles in circulation for easy coordination.
With the largest digital infrastructure platform in Vietnam and possessing 4.0 technologies such as AI, Big Data and IoT, SmartSolutions provides Data Lake, helping businesses in Transport and Logistics industry analyze and forecast business results, optimize warehouse locations, provide pricing strategies, forecast failures, maintain operations, and classify customers. Transport and Logistics businesses will have a panoramic view of the business situation, optimize operating activities and understand customer profiles more clearly.

 

Bộ 6 sản phẩm, dịch vụ của Smart Solutions giúp các doanh nghiệp khai thác dữ liệu hiệu quả

Bộ 6 sản phẩm, dịch vụ của Smart Solutions giúp các doanh nghiệp khai thác dữ liệu hiệu quả

CHI TIẾT
Các chuyên gia thường ví Dữ liệu là vàng, là dầu mỏ trong kỷ nguyên số. Nhưng nếu không tổ chức hệ thống dữ liệu để có thể phân tích được, thì không thể khai thác "mỏ vàng" này hiệu quả.
Smart Solutions đã nghiên cứu và triển khai bộ 6 giải pháp, dịch vụ có thể giải bài toán làm sao để khai thác dữ liệu số tạo ra giá trị.
1. Smart Data Platform: Nền tảng giúp doanh nghiệp dễ dàng triển khai một hệ thống Big Data nhanh chóng, đơn giản và tiết kiệm nguồn lực cho việc phát triển các sản phẩm dựa trên dữ liệu doanh nghiệp.
2. Smart Machine Learning Platform: Nền tảng được sử dụng trong các giải pháp triển khai các use case phân tích dữ liệu chuyên sâu.
3. Dịch vụ triển khai Customer 360: Dịch vụ tổng hợp, hợp nhất dữ liệu khách hàng và phân khúc khách hàng tìm ra những đặc điểm chung, gợi ý các sản phẩm phù hợp đến từng khách hàng.
4. Customer Data Platform Nền tảng hoàn chỉnh để thực hiện triển khai một hệ thống Customer 360 nhanh chóng, đơn giản và tiết kiệm cho doanh nghiệp.
5. Dịch vụ triển khai Data Lake: Tích hợp, chuẩn hóa, truy vấn khai thác khối lượng dữ liệu từ nhiều nguồn khác nhau (bao gồm có cấu trúc, phi cấu trúc và bán cấu trúc).
6. Dịch vụ phân tích dữ liệu: Phân tích dữ liệu chuyên sâu dựa trên nền tảng vMLP để mang lại giá trị từ khối dữ liệu từ khách hàng.