Android Feature Request: Carrier OpenId API #94
Replies: 2 comments 2 replies
-
Hi @AxelNennker, |
Beta Was this translation helpful? Give feedback.
-
Hi @AxelNennker , Of couse we understand the benefits, and how it will ease the 3rdParty apps, but if it's only implemented on Android, and we still need a telco Finder for others OS, it will only be profitable to avoid overloading the telco finder. Do you have a sequence diagram and an example of the content of the subscription_id to see how it is related to each operator ? |
Beta Was this translation helpful? Give feedback.
-
Deutsche Telekom created a feature request in Android that would allow all applications to retrieve the carrier's OpenId Connect configuration.
We believe that vendors of applications using Camara APIs would greatly benefit from the new Carrier OpenId API.
Everytime user consent and user authentication is needed before a Camara API can be "legally" used, this Carrier OpenId API can be used to retrieve the carrier's OpenId configuration.
The OpenId configuration can either be directly used by the application for user authentication and/or consent, or the configuration URL can be forwarded to an aggregator, who then knows which carrier is serving Camara APIs.
Or the carrier can set the aggregator as its openid configuration endpoint.
The options for streamlining Camara business are endless.
I would kindly ask you to +1 the issue and also comment on the issue directly describing how your company is affected by the new Android Carrier OpenId API.
Here is the public issue, everybody can see:
https://issuetracker.google.com/issues/308240647
Here is the feature request for if you are an Android partner. The visibility of this issue sometime changes, so I am not sure who can see it.
https://partnerissuetracker.corp.google.com/u/1/issues/308520958
Thanks for your support,
@AxelNennker
For easier reading, here is a copy of the Android feature request:
Feature name: Carrier OpenId API
What form factor is this feature targeting?:
All Form Factors
Short description:
Applications that e.g. want to make use of carrier APIs are in some cases required to authenticate the user and collect the user’s consent. But application developers currently have no way to determine the carrier’s user authentication endpoint. GSMA standardized OpenId Connect (OIDC) authentication for privileged apps and that is already implemented in Android.
See: https://cs.android.com/android/platform/superproject/main/+/main:frameworks/libs/gsma_services/ts43authentication/src/com/android/libraries/ts43authentication/Ts43AuthenticationLibrary.java
This feature request is to make OIDC-based user authentication available to all Android apps.
DT proposes an API that allows all Android applications to retrieve the carrier’s OIDC configuration e.g. https://mobileconnect.telekom.de/.well-known/openid-configuration
OpenId Connect is the standard for user authentication and used by carriers and Google.
Deutsche Telekom is a corporate member of the OpenId Foundation.
Google is a sustaining member of the OpenId Foundation. Filip Verley is Google's representative at the OIDF. https://openid.net/foundation/board/
.
Use case(s):
The banking app would retrieve the carrier’s OIDC configuration and direct the user to the carrier’s user authentication page.
If this feature was accepted, what does success look like?:
All Android application can retrieve the carrier’s OIDC configuration.
3rd Parties using carrier APIs like those defined in Camara that need user consent use this new Android API to retrieve the carrier's OIDC configuration. OEMs and other providing first run UX to Android users now have a general way to determine the user authentication endpoint and more of the carrier, and use that to create carrier accounts on the new device.
Impacts to partner/ecosystem (e.g. accelerate build speeds 10x):
This new API makes it possible for the API user to determine the carrier's OIDC configuration.
Detailed description and list of technical documents
getOidcConfiguration
Added in API level 35
public String getOidcConfiguration (int subscriptionId)
Returns the URL as a string for the carrier's OIDC configuration endpoint for
subId
, or an empty string if not available.This API is suitable for general apps that needs to e.g. authenticate the user at the carrier's OIDC authentication endpoint and collect consent.
The availability and correctness of the OIDC configuration URL depends whether the carrier has configured this value.
Requires no permission.
Parameters
subscriptionId
int
: the subscription ID, or[DEFAULT_SUBSCRIPTION_ID](https://developer.android.com/reference/android/telephony/SubscriptionManager#DEFAULT_SUBSCRIPTION_ID)
for the default one.Returns
[String](https://developer.android.com/reference/java/lang/String)
the URL of the carrier's OIDC configuration or an empty string if not available. This value cannot be
null
. The OIDC standard requires that this URL is an HTTPS-URL.Throws
[IllegalStateException](https://developer.android.com/reference/java/lang/IllegalStateException)
if the telephony process is not currently available.
The new Android API might be implemented in SubscriptionManager. As the OIDC configuration is public no PERMISSIONS are needed.
https://developer.android.com/reference/android/telephony/SubscriptionManager
Camara API examples
https://camaraproject.org/device-status/
https://camaraproject.org/device-location/
GSMA Standards
https://www.gsma.com/newsroom/wp-content/uploads/TS.43-v9.0.pdf
OIDF Standards
https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata
TS.43 in Android
https://cs.android.com/android/platform/superproject/main/+/main:frameworks/libs/gsma_services/ts43authentication/src/com/android/libraries/ts43authentication/Ts43AuthenticationLibrary.java
Similar method in Android
Android's Ts43AuthenticationLibary already has a similar method but retrieving the OIDC configuration allows to get all the information instead of just e.g. the OIDC token endpoint.
See:
https://cs.android.com/android/platform/superproject/main/+/main:frameworks/libs/gsma_services/ts43authentication/src/com/android/libraries/ts43authentication/Ts43AuthenticationLibrary.java;l=242
public void requestOidcAuthenticationServer(...)
Beta Was this translation helpful? Give feedback.
All reactions