Azure / Azure/azure-libraries-for-java

[FEATURE REQ] Expose immutableID property during User creation/reading

Abierto
#722 1 comentario 0 reacciones 0 asignados Ver en GitHub
AAD customer-reported feature-request Mgmt
Lenguaje dominante
Java
Estrellas
97
Forks
102
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

**Is your feature request related to a problem? Please describe.**
In order to use Azure/AzureAD with a federated, external IDP (https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-saml-protocol-reference) it is important to define a users immutable ID during creation so the external IDP can use it. This parameter is already present in the `UserCreateParametersInner` class but not exposed to be set in the fluent API.

**Describe the solution you'd like**
The fluent API should expose this parameter so it can be set during user creation (and also when retrieving the users information again from Azure.

**Describe alternatives you've considered**
At the moment our workaround is to set this private property via reflection magic which works (example is in Kotlin):
```kotlin
fun WithCreate.withThisImmutableId(immutableId: String): WithCreate {
val user = this as ActiveDirectoryUser

val paramField = user.javaClass.getDeclaredField("createParameters")
paramField.isAccessible = true
val innerParams = paramField.get(user) as UserCreateParametersInner
innerParams.withImmutableId(immutableId)

return this
}
```
extraction can be performed similar also via reflection:
```kotlin
val getInnerAsyncMethod = adUser.javaClass.getDeclaredMethod("getInnerAsync")
getInnerAsyncMethod.isAccessible = true
@Suppress("UNCHECKED_CAST")
val obInner = getInnerAsyncMethod.invoke(adUser) as Observable
val innerUser = obInner.toBlocking().first()

return innerUser.immutableId()
```

Do you accept PRs regarding this issue? We could supply an extension PR to the fluent API if you like.

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Comience con UserCreateParametersInner y la implementación de la API fluida utilizada por ActiveDirectoryUser; después, inspeccione las rutas createParameters y getInnerAsync mostradas en el issue. La tarea estará terminada cuando immutableId pueda establecerse mediante la API fluida y recuperarse del usuario devuelto sin reflexión.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
azure, java
Área
api, authentication
Tipo de issue
Nueva funcionalidad
Dificultad
3/5
Tiempo estimado
1-2 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
38/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.