Ukázka kódu: Ověřování certifikátů OAuth 2.0
Aktualizováno: 19. června 2015
Platí pro: Azure
Tato ukázka ukazuje, jak ověřit v Microsoft Azure Active Directory Access Control (označované také jako služba Access Control nebo ACS) pomocí protokolu OAuth 2.0 tak, že prezentujete token SAML podepsaný certifikátem X.509. Tento certifikát odpovídá identitě serviceIdentity nakonfigurované v ACS a ACS vydává SWT s deklarací identity nameidentifier serviceIdentity . Tento SWT se používá k ověření u chráněného prostředku OAuth 2.0. Tato ukázka odpovídá konceptu 13 protokolu OAuth 2.0. Kód pro tuto ukázku se nachází v podadresáři kódu OAuth2 (C#\OAuth2) balíčku ukázek kódu Microsoft Azure Active Directory Access Control (ACS).
Požadavky
K spuštění této ukázky budete potřebovat:
Účet v Azure Portal a obor názvů Access Control
Visual Studio 2010 (libovolná verze)
Další podrobnosti najdete v tématu Požadavky ACS (https://go.microsoft.com/fwlink/?LinkId=221065).
Konfigurace ukázky
Konfiguraci služby ACS vyžadovanou pro tuto ukázku je možné provést pomocí portálu pro správu služby ACS nebo služby pro správu služby ACS. Toto téma popisuje obě možnosti.
Možnost 1: Konfigurace ukázky pomocí portálu pro správu služby ACS
Možnost 2: Konfigurace ukázky pomocí služby pro správu služby ACS
Možnost 1: Konfigurace ukázky pomocí portálu pro správu služby ACS
Konfigurace ukázky pomocí portálu pro správu služby ACS
Přejděte na portál pro správu Microsoft Azure (https://manage.WindowsAzure.com), přihlaste se a klikněte na Active Directory. (Tip pro řešení potíží: Položka Active Directory chybí nebo není k dispozici)
Chcete-li vytvořit obor názvů Access Control, klikněte na Tlačítko Nový, klikněte na App Services, klikněte na Access Control a potom klikněte na Rychlé vytvoření. (Nebo klikněte na Access Control Obory názvů předtím, než kliknete na Nový.)
Pokud chcete spravovat Access Control obor názvů, vyberte obor názvů a klikněte na Spravovat. (Nebo klikněte na Access Control Obory názvů, vyberte obor názvů a potom klikněte na Spravovat.)
Tato akce otevře portál pro správu služby Access Control.
Pokud chcete aplikaci zaregistrovat v ACS, klikněte na aplikace předávající strany, klepněte na tlačítko Přidat a zadejte do formuláře následující informace:
Do pole Název zadejte OAuth2 RP.
Do pole Sféra zadejte https://oauth2relyingparty/
V poli Formát tokenu vyberte SWT.
Kliknutím na Tlačítko Generovat vytvoříte nový klíč.
Do pole Datum vypršení platnosti zadejte odpovídající datum vypršení platnosti klíče. Klíč už nebude platný v tomto datu.
Klikněte na Uložit.
S zaregistrovanou předávající stranou je teď čas vytvořit pravidla, která určují deklarace identity, které služba ACS vydá vaší aplikaci. V této ukázce vytvoříme pravidlo, které uděluje všechny deklarace identity generované službou ACS, aby prošla.
Chcete-li vytvořit toto pravidlo, klepněte na tlačítko Skupiny pravidel a klepněte na tlačítko Výchozí skupina pravidel pro OAuth2 RP. Pokud chcete přidat nové pravidlo, použijte následující nastavení:
V části Vystavitel deklarací identity vyberte Access Control Service
V části Typ vstupní deklarace identity vyberte Libovolný.
V části Vstupní hodnota deklarací identity vyberte Libovolný
V části Typ výstupní deklarace identity vyberte Předávat vstupní typ deklarace identity.
V části Výstupní hodnota deklarace identity vyberte Předat vstupní hodnotu deklarace identity.
Tato ukázka spoléhá na přihlašovací údaje spravované službou ACS.
Chcete-li nakonfigurovat nový klientský certifikát pro klientskou aplikaci, klepněte na položku Identity služby, klepněte na tlačítko Přidat a zadejte název. Přidejte typ pověření certifikátu X.509 a vyhledejte soubor ACS2ClientCertificate.cer ve složce Certifikáty této ukázky. Klikněte na Uložit.
Teď, když je služba ACS nakonfigurovaná, otevřete Visual Studio.
Možnost 2: Konfigurace ukázky pomocí služby pro správu služby ACS
Ukázkové řešení Visual Studio má konzolovou aplikaci s názvem ConfigureSample, která používá službu ACS Management Service a běžné pomocné rutiny definované v knihovně běžných tříd. Tuto aplikaci můžete použít ke konfiguraci vašeho Access Control oboru názvů pro použití s touto ukázkou.
Konfigurace ukázky pomocí služby ACS Management Service
Aktualizujte knihovnu běžných tříd s informacemi o vašem oboru názvů Access Control. Otevřete SamplesConfiguration.cs a zadejte následující:
ServiceNamespace – toto je název vašeho oboru názvů Access Control
ManagementServiceIdentityName – jedná se o název účtu služby pro správu.
ManagementServiceIdentityKey – toto je heslo přidružené k účtu služby pro správu.
AcsHostUrl – toto je název hostitele služby ACS.
Spusťte aplikaci ConfigureSample v Visual Studio. Tím nakonfigurujete službu ACS tak, aby spustila tuto ukázku.
Jakmile se aplikace ConfigureSample dokončí, vygeneruje do konzoly vygenerovaný podpisový klíč předávající strany. Zkopírujte tento klíč do schránky.
Spuštění ukázky
Chcete-li spustit ukázku
Otevřete ukázku v Visual Studio. Kromě KonfiguraceSample a Common se řešení skládá ze dvou projektů: ProtectedResourceWebApp a Client.
Pokud jste to ještě neudělali, zadejte podrobnosti o oboru názvů Access Control v common\SamplesConfiguration.cs. Další informace najdete v kroku 1 možnosti 2: Konfigurace prostřednictvím služby ACS Management Service výše. Tento soubor také používá projekt Klienta .
Otevřete soubor web.config v projektu ProtectedResourceWebApp .
Do příslušných elementů AppSettings zadejte podpisový klíč tokenu. Pokud jste službu pro správu použili ke konfiguraci služby ACS, jedná se o hodnotu, kterou jste zkopírovali do schránky. Podpisový klíč tokenu získáte tak, že na portálu ACS kliknete na Certifikáty a klíče. Níže je fragment kódu, který ukazuje tuto část souboru web.config:
<appSettings> <add key="SigningKey" value="...Copy Signing Key..."/> </appSettings>
Pokud chcete ukázku spustit, spusťte ProtectedResourceWebApp. Zobrazí se webový prohlížeč, ale textové pole je prázdné, protože webový prohlížeč je neověřený.
Spusťte klienta. HTML se zobrazí v okně konzoly. Všimněte si, že KÓD HTML označuje, že je uživatel ověřený a zobrazí deklarace identity ze služby ACS.