Ich möchte die ID Token
abrufen, dass ich es nach erfolgreicher Authentifizierung über eine GET/POST-Anfrage an eine andere Anwendung senden kann.ID-Token zur Weiterleitung an eine andere Anwendung erhalten
Szenario ist die folgende:
- Mehrere Webanwendungen mit verschiedenen URLs (* .domain.com)
- Alle Anwendungen müssen die Authentifizierung gegen Azure Active Directory
- Zu viele URLs sie setzen alle als redirect_url (würde für jeden Hostnamen einen benötigen)
- Idea ist eine "Login" -App (login.domain.com), die die Anmeldung übernimmt und dann den ID-Token an die * .domain.com-Anwendungen weiterleitet (URL in das Statusfeld)
- * .domain.com dann überprüft die ID-Token und autorisiert Benutzer
Mit Microsoft.AspNetCore.Authentication.OpenIdConnect, ich kann nicht herausfinden, wie die ID-Token abzurufen, damit ich es richtig weiterleiten kann.
Ich habe die VS2015-Vorlage für ASP.NET-Core 1.0 Web Application und konfiguriere die Authentifizierung richtig (das funktioniert)
Jetzt muß ich das Token erhalte irgendwie, aber ich kann nicht herausfinden, wie verwendet.
app.UseOpenIdConnectAuthentication(new OpenIdConnectOptions()
{
ClientId = Configuration["Authentication:AzureAd:ClientId"],
Authority = Configuration["Authentication:AzureAd:AADInstance"] + "Common",
CallbackPath = Configuration["Authentication:AzureAd:CallbackPath"],
TokenValidationParameters = new TokenValidationParameters
{
// Instead of using the default validation (validating against a single issuer value, as we do in line of business apps),
// we inject our own multitenant validation logic
ValidateIssuer = false,
// If the app is meant to be accessed by entire organizations, add your issuer validation logic here.
//IssuerValidator = (issuer, securityToken, validationParameters) => {
// if (myIssuerValidationLogic(issuer)) return issuer;
//}
},
Events = new OpenIdConnectEvents
{
OnTicketReceived = (context) =>
{
// If your authentication logic is based on users then add your logic here
return Task.FromResult(0);
},
OnAuthenticationFailed = (context) =>
{
context.Response.Redirect("/Home/Error");
context.HandleResponse(); // Suppress the exception
return Task.FromResult(0);
},
// If your application needs to do authenticate single users, add your user validation below.
//OnTokenValidated = (context) =>
//{
// return myUserValidationLogic(context.Ticket.Principal);
//}
}
});
Ich denke, ich sollte es in der Lage sein, sich in der OnTicketReceived
Veranstaltung die TicketReceivedContext
mit?