Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a: inquilinos de personal
inquilinos externos (más información)
Este es el cuarto tutorial de la serie de tutoriales que le guía en el inicio de sesión de los usuarios y la llamada a una API web protegida mediante el identificador de Entra de Microsoft.
En este tutorial, harás lo siguiente:
- Llame a una API web protegida.
Prerrequisitos
Llamada a la API
Una vez que tenga un token, la aplicación puede usarlo en el encabezado HTTP para realizar una solicitud autorizada a Microsoft Graph.
clave del encabezado | valor |
---|---|
Autorización | Portador <access-token> |
Agregue el siguiente código a la clase ViewController
:
func getContentWithToken() {
// Specify the Graph API endpoint
let graphURI = getGraphEndpoint()
let url = URL(string: graphURI)
var request = URLRequest(url: url!)
// Set the Authorization header for the request. We use Bearer tokens, so we specify Bearer + the token we got from the result
request.setValue("Bearer \(self.accessToken)", forHTTPHeaderField: "Authorization")
URLSession.shared.dataTask(with: request) { data, response, error in
if let error = error {
self.updateLogging(text: "Couldn't get graph result: \(error)")
return
}
guard let result = try? JSONSerialization.jsonObject(with: data!, options: []) else {
self.updateLogging(text: "Couldn't deserialize result JSON")
return
}
self.updateLogging(text: "Result from Graph: \(result))")
}.resume()
}
Consulte Microsoft Graph API para más información acerca de Microsoft Graph API.
Prueba de la aplicación
Cree e implemente la aplicación en un emulador o dispositivo de prueba. Debe ser capaz de iniciar sesión y obtener tokens para Microsoft Entra ID o cuentas personales de Microsoft.
La primera vez que un usuario inicie sesión en la aplicación, Microsoft Identity le pedirá que consienta los permisos solicitados. Aunque la mayoría de los usuarios pueden dar su consentimiento, algunos inquilinos de Microsoft Entra tienen el consentimiento del usuario deshabilitado, lo que requiere que los administradores den su consentimiento en nombre de todos los usuarios. Para admitir este escenario, registre los ámbitos de la aplicación.
Después de iniciar sesión, esta aplicación mostrará los datos devueltos desde el punto de conexión /me
de Microsoft Graph.
Pasos siguientes
Más información sobre la creación de aplicaciones móviles que llaman a las API web protegidas en nuestra serie de escenarios de varias partes.
Este es el cuarto tutorial de la serie de tutoriales que le guía en el inicio de sesión de los usuarios y la llamada a una API web protegida mediante el identificador externo de Microsoft Entra.
En este tutorial, harás lo siguiente:
- Llame a una API web protegida.
Prerrequisitos
Tutorial: Inicio de sesión de usuarios en la aplicación móvil de iOS (Swift)
Un registro de API que expone al menos un ámbito (permisos delegados) y un rol de aplicación (permiso de aplicación), como ToDoList.Read. Si aún no lo ha hecho, siga las instrucciones para llamar a una API en una aplicación móvil de iOS de ejemplo para tener una API web protegida funcionalmente ASP.NET Core. Asegúrese de completar los pasos siguientes:
- Registrar una aplicación de API web.
- Configuración de ámbitos de API.
- Configure los roles de aplicación.
- Configuración de notificaciones opcionales.
- Clone o descargue la API web de ejemplo.
- Configure y ejecute la API web de ejemplo.
Llamada a la API
Para llamar a una API web protegida desde la aplicación de iOS, use el código siguiente:
func getContentWithToken() {
// Specify the API endpoint in _Configuration.swift_ file you created earlier
guard let url = URL(string: Configuration.kProtectedAPIEndpoint) else {
let errorMessage = "Invalid API url"
print(errorMessage)
updateLogging(text: errorMessage)
return
}
var request = URLRequest(url: url)
// Set the Authorization header for the request. We use Bearer tokens, so we specify Bearer + the token we got from the result
request.setValue("Bearer \(self.accessToken)", forHTTPHeaderField: "Authorization")
self.updateLogging(text: "Performing request...")
URLSession.shared.dataTask(with: request) { data, response, error in
if let error = error {
self.updateLogging(text: "Couldn't get API result: \(error)")
return
}
guard let httpResponse = response as? HTTPURLResponse,
(200...299).contains(httpResponse.statusCode)
else {
self.updateLogging(text: "Couldn't get API result: \(error)")
return
}
guard let data = data, let result = try? JSONSerialization.jsonObject(with: data, options: []) else {
self.updateLogging(text: "Couldn't deserialize result JSON")
return
}
self.updateLogging(text: """
Accessed API successfully using access token.
HTTP response code: \(httpResponse.statusCode)
HTTP response body: \(result)
""")
}.resume()
}
El código especifica el punto de conexión de API, lo que garantiza su validez. A continuación, crea un objeto de solicitud y establece el encabezado de autorización con el token de acceso obtenido. Después de registrar el inicio de la solicitud, realiza la solicitud de forma asincrónica mediante URLSession
.
Tras la finalización, comprueba si hay errores durante la solicitud. Si se produce un error, registra el mensaje correspondiente. A continuación, comprueba el éxito de la respuesta HTTP, asegurándose de que se encuentra dentro del intervalo de 200 a 299 códigos de estado. Después, deserializa los datos JSON recibidos. Por último, actualiza el texto de registro, lo que indica el acceso correcto a la API junto con los detalles de respuesta HTTP pertinentes.