Utilice o fluxo de concesión implícita de OAuth 2.0 no seu portal
Esta función permite que un cliente faga chamadas do cliente a API externas e protexeas mediante o fluxo de concesión implícito de OAuth. Ofrece un punto final para obter tokens de acceso seguro. Estes tokens conterán información de identidade do usuario que as API externas usarán para a autorización despois do fluxo de concesión implícita de OAuth 2.0. A información de identidade dun usuario iniciado pásase de forma segura ás chamadas AJAX externas, o que axuda aos desenvolvedores a pasar o contexto de autenticación e tamén axudará aos usuarios a protexer as súas API.
Admite o fluxo de concesión implícito de OAuth 2.0 ficha puntos finais aos que un cliente pode chamar para obter un token de identificación.
Certificados personalizados
Os certificados personalizados proporcionan outra capa de seguridade ao utilizar o punto final de OAuth 2.0. Usa o Power Platform centro de administración para cargar o certificado personalizado. Despois de cargar o certificado personalizado, cómpre actualizar a configuración do sitio como se indica a continuación
Ir a configuración do portal e selecciona Configuración do sitio.
Para crear unha nova configuración, seleccione Novo.
Para editar unha configuración existente, seleccione a configuración do sitio que aparece na grade.
Especificar valores:
- Nome: CustomCertificates/ImplicitGrantflow
- Páxina web: O sitio web asociado
- Valor: Copia a pegada dixital do certificado personalizado cargado desde a pantalla Xestionar certificado personalizado e pégaa aquí. O valor indicará que certificado se utilizará para o fluxo de concesión implícita.
Seleccione Gardar e pechar.
Detalles do extremo token
Tamén podes obter un token facendo unha solicitude de publicación ao/token punto final. O URL do extremo token é: <portal_url>/_services/auth/token. O extremo de token admite os parámetros seguintes:
| Parámetro | Necesario? | Descrición |
|---|---|---|
| client_id | Non | Cadea que se pasa ao realizar unha chamada ao extremo de autorizar. Debe garantir que o ID de cliente está rexistrado co portal. En caso contrario, móstrase un erro. O ID de cliente engádese nas reclamacións do token comoaud eappid parámetro e pode ser usado polos clientes para validar que o token devolto é para a súa aplicación.A lonxitude máxima é de 36 caracteres. Só se admiten caracteres alfanuméricos e guións. |
| redirect_uri | Non | URL do portal onde as respostas de autenticación poden enviarse e recibirse. Debe rexistrase para o client_id concreto utilizado na chamada e debe ser exactamente o mesmo valor que está rexistrado. |
| estado | Non | Valor incluído na solicitude que tamén se devolve na resposta de token. Pode ser unha cadea de calquera contido que desexa utilizar. Normalmente, un valor único xerado aleatoriamente utilízase para evitar ataques de falsificación de solicitudes en múltiples sitios. A lonxitude máxima é de 20 caracteres. |
| nonce | Non | Valor de cadea enviado polo cliente que está incluído no token de ID que resulta como reclamación. O cliente pode verificar este valor para mitigar ataques de reprodución de tokens. A lonxitude máxima é de 20 caracteres. |
| response_type | No | Este parámetro só é compatibletoken como valor, permitindo que a súa aplicación reciba inmediatamente un token de acceso desde o punto final de autorización sen facer unha segunda solicitude ao punto final de autorización. |
Nota
Aínda que os parámetros client_id, redirect_uri, state e nonce son opcionais, é recomendable usalos para asegurarse de que as integracións son seguras.
Resposta correcta
O extremo de token devolve estado e expires_in como cabeceiras de resposta e token no corpo do formulario.
Resposta de erro
O erro no extremo token devólvese como un documento JSON cos seguintes valores:
- ID de erro: Identificador único do erro.
- Mensaxe de erro: Unha mensaxe de erro específica que pode axudar a identificar a causa raíz causa dun erro de autenticación.
- ID de correlación: GUID que se utiliza con fines de depuración. Se ten activado o rexistro de diagnósticos, o ID de correlación aparecerá nos rexistros de erro de servidor.
- Marca de hora: Data e hora en que se xera o erro.
A mensaxe de erro móstrase no idioma predefinido do usuario que iniciou sesión. Se o usuario non iniciou sesión, móstrase unha páxina de inicio de sesión para que o usuario inicie sesión. Por exemplo, unha resposta de erro ten o seguinte aspecto:
{"ErrorId": "PortalSTS0001", "ErrorMessage": "Client Id provided in the request is not a valid client Id registered for this portal. Please check the parameter and try again.", "Timestamp": "4/5/2019 10:02:11 AM", "CorrelationId": "7464eb01-71ab-44bc-93a1-f221479be847" }
Detalles do extremo autorizar
Nota
O punto final de autorización está obsoleto. Use a solicitude POST do punto final de token para obter o token de identificación.]
O URL do extremo autorizar é: <portal_url>/_services/auth/authorize. O extremo de autorizar admite os parámetros seguintes:
| Parámetro | Necesario? | Descrición |
|---|---|---|
| client_id | Si | Cadea que se pasa ao realizar unha chamada ao extremo de autorizar. Debe garantir que o ID de cliente está rexistrado co portal. En caso contrario, móstrase un erro. O ID de cliente engádese nas reclamacións do token comoaud eappid parámetro e pode ser usado polos clientes para validar que o token devolto é para a súa aplicación.A lonxitude máxima é de 36 caracteres. Só se admiten caracteres alfanuméricos e guións. |
| redirect_uri | Si | URL do portal onde as respostas de autenticación poden enviarse e recibirse. Debe rexistrase para o client_id concreto utilizado na chamada e debe ser exactamente o mesmo valor que está rexistrado. |
| estado | Non | Valor incluído na solicitude que tamén se devolve na resposta de token. Pode ser unha cadea de calquera contido que desexa utilizar. Normalmente, un valor único xerado aleatoriamente utilízase para evitar ataques de falsificación de solicitudes en múltiples sitios. A lonxitude máxima é de 20 caracteres. |
| nonce | Non | Valor de cadea enviado polo cliente que está incluído no token de ID que resulta como reclamación. O cliente pode verificar este valor para mitigar ataques de reprodución de tokens. A lonxitude máxima é de 20 caracteres. |
| response_type | No | Este parámetro só é compatibletoken como valor, o que permite que a súa aplicación reciba inmediatamente un token de acceso do punto final de autorización sen facer unha segunda solicitude ao punto final de autorización. |
Resposta correcta
O extremo autorizar devolve os seguintes valores no URL de resposta como un fragmento:
- token: o token devólvese como un token web de JSON (JWT) asinado dixitalmente pola clave privada do portal.
- estado: Se se inclúen un parámetro de estado na solicitude, o mesmo valor debería aparecen na resposta. A aplicación debe verificar que os valores de estado na solicitude e na resposta son idénticos.
- expires_in: O período de tempo no que é válido o token de acceso (en segundos).
Por exemplo, unha resposta correcta ten o seguinte aspecto:
GET https://aadb2cplayground.azurewebsites.net/#token=eyJ0eXAiOiJKV1QiLCJhbGciOI1NisIng1dCI6Ik5HVEZ2ZEstZnl0aEV1Q&expires_in=3599&state=arbitrary_data_you_sent_earlier
Resposta de erro
O erro no extremo autorizar devólvese como un documento JSON cos seguintes valores:
- ID de erro: Identificador único do erro.
- Mensaxe de erro: Unha mensaxe de erro específica que pode axudar a identificar a causa raíz causa dun erro de autenticación.
- ID de correlación: GUID que se utiliza con fines de depuración. Se ten activado o rexistro de diagnósticos, o ID de correlación aparecerá nos rexistros de erro de servidor.
- Marca de hora: Data e hora en que se xera o erro.
A mensaxe de erro móstrase no idioma predefinido do usuario que iniciou sesión. Se o usuario non iniciou sesión, móstrase a páxina de inicio de sesión para que o usuario inicie sesión. Por exemplo, unha resposta de erro ten o seguinte aspecto:
{"ErrorId": "PortalSTS0001", "ErrorMessage": "Client Id provided in the request is not a valid client Id registered for this portal. Please check the parameter and try again.", "Timestamp": "4/5/2019 10:02:11 AM", "CorrelationId": "7464eb01-71ab-44bc-93a1-f221479be847" }
Validar token de ID
Só conseguir un token de identificación non é suficiente para autenticar o usuario; tamén debes validar a sinatura do token e verificar as afirmacións do token en función dos requisitos da túa aplicación. O extremo de token público fornece a clave pública do portal, que pode utilizarse para validar a sinatura do token fornecida polo portal. O URL do extremo token público é: <portal_url>/_services/auth/publickey.
Activar ou desactivar fluxo de concesión implícita
Por defecto, o fluxo de concesión implícita está activado. Se desexa desactivar o fluxo de concesión implícita, defina o valor da configuración do sitio Conector/ImplicitGrantFlowEnabled como Falso.
Se esta configuración do sitio non está dispoñible no teu portal, debes facelo crear unha nova configuración do sitio co valor axeitado.
Configurar validez do token
Por defecto, o token é válido durante 15 minutos. Se desexa cambiar a validez do token, defina o valor da configuración do sitio de ImplicitGrantFlow/TokenExpirationTime ao valor requerido. O valor debe especificarse en segundos. O valor máximo pode ser 1 hora e o valor mínimo debe ser 1 minuto. Se se especifica un valor incorrecto (por exemplo, caracteres alfanuméricos), utilízase o valor predefinido de 15 minutos. Se especifica un valor superior ao valor máximo ou inferior ao valor mínimo, utilízanse os valores mínimos e máximos respectivamente, por defecto.
Por exemplo, para definir a validez do token en 30 minutos, defina o valor da configuración de sitio de ImplicitGrantFlow/TokenExpirationTime en 1800. Para definir a validez do token en 1 hora, defina o valor da configuración de sitio de ImplicitGrantFlow/TokenExpirationTime en 3600.
Rexistrar ID de cliente para o fluxo de concesión implícita
Debe rexistrar o ID do cliente co portal para o que está permitido este fluxo. Para rexistrar un ID de cliente, debe crear a configuración do sitio seguinte:
| Configuración do sitio | Value |
|---|---|
| ImplicitGrantFlow/RegisteredClientId | Os valores de ID de cliente válidos permitidos para este portal. Os valores deben estar separados por un punto e coma e poden conter caracteres alfanuméricos e guións. A lonxitude máxima é de 36 caracteres. |
| ImplicitGrantFlow/{ClientId}/RedirectUri | Os URI de redireccionamento válidos permitidos para un ID de cliente específico. Os valores debe estar separados por un punto e coma. O URL fornecido debe ser dunha páxina web válida do portal. |
Código de mostra
Pode empregar o seguinte código de exemplo para comezar a usar a concesión implícita Oauth 2.0 coas API de portais de Power Apps.
Use o token Oauth do portal cunha API web externa
Esta mostra é un proxecto baseado en ASP.NET e úsase para validar o token de identificación emitido por portais de Power Apps. A mostra completa pódese atopar aquí: Usar o token Oauth do portal cunha API web externa.
Mostra de extremo de token
Esta mostra amosa como pode usar a función getAuthenticationToken para buscar un token de ID usando o extremo de token en portais de Power Apps. A mostra pódese atopar aquí: Mostra de extremo de token.
Nota
Pode indicarnos as súas preferencias para o idioma da documentación? Realice unha enquisa breve. (teña en conta que esa enquisa está en inglés)
Esta enquisa durará sete minutos aproximadamente. Non se recompilarán datos persoais (declaración de privacidade).
Comentarios
Enviar e ver os comentarios