Ich verwende OWIN OpenID Connect Middleware zur Verbindung mit Azure AD. Ich bin in der Lage, den Benutzer erfolgreich zu authentifizieren und zurück zum Callback-Endpunkt umzuleiten. Ich bin hier ein wenig verwirrt, da ich nur & code
in der Antwort empfange.OpenIDConnect zum Herstellen einer Verbindung mit Azure AD
app.UseOpenIdConnectAuthentication(
new OpenIdConnectAuthenticationOptions
{
AuthenticationType = "Azure AD - TEST",
Caption = "azure AD",
SignInAsAuthenticationType = signInAsType,
ClientId = "some guid",
Authority = "https://sts.windows.net/idp",
ResponseType = OpenIdConnectResponseTypes.CodeIdToken,
RedirectUri = "https://localhost:44392/ExternalLogins/Callback/",
AuthenticationMode = AuthenticationMode.Active,
});
Callback-Methode:
[HttpPost]
[Route("ExternalLogins/Callback")]
[AllowAnonymous]
public async Task<IHttpActionResult> ExternalLoginCallback()
{
var content = await Request.Content.ReadAsStringAsync();
// I could see the content is a string with id_token, code , state etc.
//id_token is a JWT, so i can decode it and see the user claims and use them later
}
Meine Fragen sind:
- Ist Azure AD verwendet nur für den Benutzer zu authentifizieren? Was ist mit Autorisierung?
- Wenn ich nach der Authentifizierung zu anderen APIs aufrufen möchte, wie mache ich das, weil ich
access_token
nicht habe? - Ich denke, ich kann
code
mitaccess_token
austauschen, aber nicht sicher, welchen Azure-Endpunkt muss ich anrufen, umaccess_token
zu erhalten? - Was ist der Unterschied zwischen
AuthenticationMode.Active
undAuthenticationMode.Passive
?