Frage

Die Delegation von OAuth 2.0 ist im Azure AppFabric Access Control Service enthalten:

http://blogs.objectsharp.com/cs/blogs/steve/archive/2011/04/11/windows-azure-access-control-services-v2-rtw.aspx

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:

http://blogs.msdn.com/b/vbertocci/archive/2011/05/19/adding-a-custom-openid-provider-t-acs-in-just-one-line-of-powershell-code. ASPX

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.

http://msdn.microsoft.com/en-us/library/hhh278947.aspx

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top