C.1 Detailed flow for MCPTT user authentication and registration using OpenID Connect

33.1793GPPRelease 13Security of Mission Critical Push To Talk (MCPTT) over LTETS

Figure D.1-1 shows the detailed flow for MCPTT User Authentication and Registration using the OpenID Connect messages as described in annex B.

Figure C.1-1: OpenID Connect MCPTT User Authentication and Registration

Step 0: The UE attaches to the network, establishes normal connectivity, and sets up network security as defined in 3GPP TS 33.401 [14]. Local P-CSCF in the Home IMS network is discovered at this point.

Step 1: The UE IMS Client authenticates with the Home IMS network. For IMS authentication, 3GPP TSĀ 33.203 [9] applies.

Step 2: The SIP core sends a SIP 3rd Party Registration to the MCPTT application Server, notifying it of the MCPTT UE SIP registration. The 3rd party REGISTER message includes the registered IMPU and S-CSCF’s SIP-URI or IP Address.

Step 3a: The IdM client in the UE issues a HTTPS Authentication request to the OIDC based IdM Server in the MCPTT network. The client includes the code_challenge value in this request.

Step 3b: The user provides the MCPTT User Identity and associated credentials to the IdM server. The user is successfully authenticated (and optionally authorized) by the IdM Server.

Step 3c: The IdM Server may optionally request user consent for granting the MCPTT client access to MCPTT services in the MCPTT Server.

Step 3d: The IdM Server generates an authorization code that is associated with the code_challenge provided by the client. It sends a browser redirect HTTP message with the Authorization Response containing the authorization code.

Step 3e: The UE IdM Client performs a HTTP POST request to exchange the authorization code for an access token. In the request, the client includes the code-verifier string. This string is cryptographically associated with the code_challenge value provided in the Authorization Request in Step 3a.

Step 3f: The IdM Server verifies the IdM Client based on the received code-verifier string and issues a 200 OK with an access token and ID token (specific to the MCPTT user and MCPTT services) included in it.

NOTE: The server verifies by calculating the code challenge from the received code_verifier and comparing it with the code_challenge value provided by the client in Step 3a.

Step 3g: The access token and ID token are provided to the MCPTT client.

Step 4: The MCPTT UE performs user authorization.

Annex D (Normative):
KMS provisioning messages to support MCPTT