OAuth 2.0 -Identitätsanbieter in Windows Azure AppFabric Access Control Service (ACS)
-
26-10-2019 - |
Frage
Die Delegation von OAuth 2.0 ist im Azure AppFabric Access Control Service enthalten:
Aber wie richten Sie tatsächlich einen Identitätsanbieter von OAuth 2.0 ein?
Wenn Sie einen Identitätsanbieter hinzufügen und einen Identitätsanbieter von WS-Föderation auswählen, müssen Sie ein WS-Federation-Metadaten-Dokument bereitstellen.
Wenn Sie jedoch die Dokumentation von OAuth 2.0 -Anbietern lesen (dh http://msdn.microsoft.com/en-us/library/hhh243647.aspx) Es wird kein Metadatendokument erwähnt (ja, ich weiß, dass Windows Live als vorkonfiguriertes Identitätsanbieter enthalten ist). Muss ich das schreiben?
Aktualisieren
OK, ich habe festgestellt, dass Sie mit der API zusätzliche Identitätsanbieter hinzufügen können. Siehe diese PowerShell -Befehle als Beispiel:
Wenn ich jedoch versuche, einen OAuth -Anbieter hinzuzufügen, bekomme ich nur einen Fehler:
Add-IdentityProvider -Type "Manual" -Name "foo" -SignInAddress "http://term.ie/oauth/example/access_token.php" -Protocol OAuth -Namespace "abc" -ManagementKey "xxxxxx"
Add-IdentityProvider : An error occurred while processing this request.
At line:1 char:21
+ Add-IdentityProvider <<<< -Type "Manual" -Name "foo" -SignInAddress "http://term.ie/oauth/example/access_token.php" -Protocol OAuth -Namespace "abc" -ManagementKey "xxxxxx"
+ CategoryInfo : CloseError: (:) [Add-IdentityProvider], ServiceManagementException
+ FullyQualifiedErrorId : Microsoft.Samples.DPE.ACS.ServiceManagementTools.PowerShell.IdentityProviders.AddIdentityProviderCommand
Ein weiteres Update
Die ACS -Management -API bietet einen Mechanismus zum Hinzufügen neuer Identitätsanbieter (wenn Sie OpenID als WebSoProtocoltype festlegen). Ich kann jedoch nicht sehen, wie Sie den Schlüssel/Geheimnis übergeben, dass der OAuth -Testserver ( http://term.ie/oauth/example/ ) Ich benutze erfordert.
Lösung
In einem E -Mail -Gespräch mit Dominick Baier (www.leastprivilege.com) sagte er:
ACS unterstützt tatsächlich OpenID -IDPs - nicht OAuth. OAuth wird für Token -Anfragen verwendet (typischerweise Delegationstoken).
Um neue OpenIDS -IDP hinzuzufügen, müssen Sie die Management -API verwenden - Vittorio hat einen Blog -Beitrag mit einem Beispiel irgendwo. Aber nicht alle OpenID -Anbieter werden unterstützt.
Wenn ich Dominicks E -Mail ordnungsgemäß verstanden habe, können Sie OAuth in dieser Eigenschaft nicht verwenden, Sie müssen OpenID verwenden. Leider weiß der Typ, der den ersten Blog-Artikel geschrieben hat, den Sie erwähnt haben, nichts über OpenID/OpenAuth-er ist ein WS-FED-Typ. Ich sage das, weil ich es geschrieben habe ... :)
Andere Tipps
Das Delegationsszenario von OAuth 2, Abschnitt 4.1 in Entwurf 13, schreibt überhaupt keine Art von Identitätsanbieter oder Identitätsanbieter vor. Sie müssen nur eine Art Authentifizierung auf Ihrer Website durchführen und mit einem Authentifizierungscode in die URL Ihres Kunden umleiten.
Ich empfehle einen Blick auf die Auth 2 -Delegationsprobe unter:
https://connect.microsoft.com/site1168/downloads
Sie werden feststellen, dass in dieser Probe die Authentifizierung des Benutzers mit einem Place -Halter -Code (hart codierter Benutzername/Kennwort) implementiert wird. Im Szenario in realer Welt können Sie jedes Authentifizierungsmuster einschließlich der Föderation mit ACS verwenden, was sinnvoll ist, da Sie bereits ACS für die Implementierung Ihrer Delegation verwenden.