Delen via


Codevoorbeeld: OAuth 2.0-certificaatverificatie

Bijgewerkt: 19 juni 2015

Van toepassing op: Azure

In dit voorbeeld ziet u hoe u zich verifieert bij Microsoft Azure Active Directory Access Control (ook wel bekend als Access Control Service of ACS) met behulp van het OAuth 2.0-protocol door een SAML-token te presenteren dat is ondertekend door een X.509-certificaat. Dit certificaat komt overeen met een ServiceIdentity die is geconfigureerd op ACS en ACS geeft een SWT uit met een nameidentifier-claim van de ServiceIdentity. Deze SWT wordt gebruikt om te verifiëren bij een met OAuth 2.0 beveiligde resource. Dit voorbeeld voldoet aan concept 13 van het OAuth 2.0-protocol. De code voor dit voorbeeld bevindt zich in de submap OAuth2 (C#\OAuth2) van het pakket Microsoft Azure Active Directory Access Control (ACS)-codevoorbeelden.

Vereisten

Als u dit voorbeeld wilt uitvoeren, hebt u het volgende nodig:

  1. Een account in de Azure Portal en een Access Control naamruimte.

  2. Visual Studio 2010 (elke versie)

Zie ACS-vereisten (https://go.microsoft.com/fwlink/?LinkId=221065) voor meer informatie.

Het voorbeeld configureren

De ACS-configuratie die voor dit voorbeeld is vereist, kan worden uitgevoerd met behulp van de ACS-beheerportal of de ACS-beheerservice. In dit onderwerp worden beide opties beschreven.

  1. Optie 1: Het voorbeeld configureren met behulp van de ACS-beheerportal

  2. Optie 2: Het voorbeeld configureren met behulp van de ACS-beheerservice

Optie 1: Het voorbeeld configureren met behulp van de ACS-beheerportal

Het voorbeeld configureren met behulp van de ACS-beheerportal

  1. Ga naar de Microsoft Azure-beheerportal (https://manage.WindowsAzure.com), meld u aan en klik vervolgens op Active Directory. (Tip voor probleemoplossing: Item 'Active Directory' ontbreekt of is niet beschikbaar)

  2. Als u een Access Control naamruimte wilt maken, klikt u op Nieuw, klikt u op App Services, klikt u op Access Control en vervolgens op Snel maken. (Of klik op Access Control naamruimten voordat u op Nieuw klikt.)

  3. Als u een Access Control naamruimte wilt beheren, selecteert u de naamruimte en klikt u op Beheren. (Of klik op Access Control naamruimten, selecteer de naamruimte en klik vervolgens op Beheren.)

    Met deze actie wordt de Access Control-portal voor servicebeheer geopend.

  4. Als u uw toepassing wilt registreren bij ACS, klikt u op Relying Party-toepassingen, klikt u op Toevoegen en typt u de volgende informatie in het formulier:

    • Voer in het veld NaamOAuth2 RP in

    • Voer in het veld Realm het veld Realm in https://oauth2relyingparty/

    • Selecteer SWT in het veld Token-indeling

    • Klik op Genereren om een nieuwe sleutel te maken

    • Voer in het veld Vervaldatum een geschikte vervaldatum voor de sleutel in. De sleutel is niet meer geldig op deze datum.

  5. Klik op Opslaan.

  6. Nu uw relying party is geregistreerd, is het nu tijd om de regels te maken die bepalen welke claims ACS aan uw toepassing gaat uitgeven. In dit voorbeeld maken we een regel die elke claim verleent die door ACS wordt gegenereerd om door te geven.

    Als u deze regel wilt maken, klikt u op Regelgroepen en vervolgens op Standaardregelgroep voor OAuth2-RP. Gebruik de volgende instellingen om een nieuwe regel toe te voegen:

    • Selecteer Access Control Service in de sectie Claimverlener

    • Selecteer Any in de sectie Invoerclaimtype

    • Selecteer Any in de sectie Invoerclaimwaarde

    • Selecteer in de sectie Uitvoerclaimtype passthrough-invoerclaimtype

    • Selecteer in de sectie Uitvoerclaimwaarde pass through invoerclaimwaarde

  7. Dit voorbeeld is afhankelijk van referenties die worden beheerd door ACS.

    Als u een nieuw clientcertificaat voor de clienttoepassing wilt configureren, klikt u op Service-identiteiten, klikt u op Toevoegen en typt u een naam. Voeg een referentietype van X.509-certificaat toe en blader naar het BESTAND ACS2ClientCertificate.cer in de map Certificaten van dit voorbeeld. Klik op Opslaan.

  8. Nu ACS is geconfigureerd, opent u Visual Studio.

Optie 2: Het voorbeeld configureren met behulp van de ACS-beheerservice

De Visual Studio voorbeeldoplossing heeft een consoletoepassing met de naam ConfigureSample die gebruikmaakt van de ACS Management Service en de algemene helpers die zijn gedefinieerd in de Common-klassebibliotheek. Deze toepassing kan worden gebruikt om uw Access Control naamruimte te configureren voor gebruik met dit voorbeeld.

Het voorbeeld configureren met behulp van de ACS Management Service

  1. Werk de algemene klassenbibliotheek bij met informatie over uw Access Control naamruimte. Open SamplesConfiguration.cs en voer het volgende in:

    • ServiceNamespace: dit is de naam van uw Access Control naamruimte

    • ManagementServiceIdentityName : dit is de naam van een beheerserviceaccount

    • ManagementServiceIdentityKey - Dit is het wachtwoord dat is gekoppeld aan het beheerserviceaccount

    • AcsHostUrl - Dit is de hostnaam van ACS

  2. Voer de ConfigureSample-toepassing uit in Visual Studio. Hiermee configureert u ACS om dit voorbeeld uit te voeren.

  3. Wanneer de ConfigureSample-toepassing is voltooid, wordt de gegenereerde relying party-ondertekeningssleutel naar de console uitgevoerd. Kopieer deze sleutel naar het Klembord.

Het voorbeeld uitvoeren

Het voorbeeld uitvoeren

  1. Open het voorbeeld in Visual Studio. Naast ConfigureSample en Common bestaat de oplossing uit twee projecten: ProtectedResourceWebApp en Client.

  2. Als u dit nog niet hebt gedaan, voert u de details van uw Access Control naamruimte in Common\SamplesConfiguration.cs in. Zie stap 1 van optie 2 voor meer informatie : configureren via de acs-beheerservice hierboven. Dit bestand wordt ook gebruikt door het clientproject .

  3. Open het web.config-bestand in het project ProtectedResourceWebApp .

  4. Voer uw tokenondertekeningssleutel in de juiste AppSettings-elementen in. Als u de beheerservice hebt gebruikt om ACS te configureren, is dit de waarde die u naar het klembord hebt gekopieerd. Als u de ondertekeningssleutel voor tokens wilt ophalen, klikt u in de ACS-portal op Certificaten en sleutels. Hieronder ziet u een codefragment met deze sectie van het web.config-bestand:

    <appSettings>
       <add key="SigningKey" value="...Copy Signing Key..."/>
    </appSettings>
    
  5. Start de ProtectedResourceWebApp om het voorbeeld uit te voeren. Er wordt een webbrowser weergegeven, maar het tekstvak is leeg omdat de webbrowser niet is geverifieerd.

  6. Voer client uit. HTML wordt weergegeven in een consolevenster. Houd er rekening mee dat de HTML aangeeft dat de gebruiker is geverifieerd en de claims van ACS weergeeft.