Create the Oracle iOS Channel
You can configure the channel to connect to the Oracle Chat Server in two modes: unauthenticated mode and authenticated mode (to protect access to the channel).
- Unauthenticated mode – Use the unauthenticated mode when the client can't generate signed JWT tokens, when no authentication mechanism is in place, or when the client widget is already secured and visible to authenticated users.
- Authenticated mode – Authentication is enforced using JSON Web Tokens
(JWT). The customer's backend server generates the JWT token, which is then passed
to the Oracle iOS SDK. This token is used for each request to an ODA speech, text,
or attachment server.
NoteWhen the app needs to connect to an ODA server, it first requests the token from the backend server and then adds it to the Authorization header. The ODA server validates the token, evaluates the claims, and then either opens the socket or rejects the connection.
To protect access to the channel, the token must always be generated by a remote server. It must never be generated within by the client app.The JWT Token has the following claims:channelId
anduserId
, and the claim namesiat
(issued at time), andexp
(expiration time).iat
signifies the time at which the token was issued. This must a number that represents the seconds that have elapsed since the UNIX epoch.exp
must be a number representing the seconds that have elapsed since the UNIX epoch. We recommend setting the expiration time to at least 30 minutes after the issued at time (iat
). The token header looks something like this:
An example token body looks something like this:{ "alg": "HS256", "typ": "JWT" }
{ "iat": 1569828182, "exp": 1569831782, "channelId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "userId": "John" }
Note
The token illustrated by this example is not signed. The actual tokens are signed by channel's Secret Key.
Configure the Oracle iOS Channel
To configure the Oracle iOS channel:
- Choose Development, then Channels from the menu.
- Choose Users.
- Click Add Channel and then Oracle iOS as the channel type.
- Complete the dialog:
- Enter the channel name.
- For authenticated connections:
- Switch on the Client Authentication Enabled toggle to determine whether the SDK is connecting to a client authentication-enabled channel.
- In the Max. Token Expiration (Minutes) field, set the maximum amount of time for the JWT token.
- Set the Session expiration time.
- For unauthenticated connections:
- Switch off Client Authentication Enable toggle.
- Set the Session expiration time.
- Click Create. Oracle Digital Assistant will generate the Channel ID and the Secret Key that you need to initialize the SDK. Keep these close at hand because you'll need them when configuring the HTML page to host the chat widget.
- Route the channel to your skill or digital assistant.
- Switch Channel Enabled to On.