Dela via


Kodexempel: ASP.NET webbtjänst

Uppdaterad: 19 juni 2015

Gäller för: Azure

Det här exemplet visar hur du integrerar Microsoft Azure Active Directory Access Control (även kallat Access Control Service eller ACS) i en enkel webbtjänst. Den använder ASP.NET som webbtjänstvärd och kommandoradsklient. Den ASP.NET webbtjänsten kräver en SWT-token som utfärdats av ACS. Klienten begär en token från ACS med ett användarnamn och lösenord som registrerats med ACS. Koden för det här exemplet finns i underkatalogen ASPNETSimpleService (C#\WebServices\ASPNETSimpleService) i Microsoft Azure Active Directory Access Control-kodexempelpaketet (ACS).

Förutsättningar

Om du vill köra det här exemplet behöver du:

  1. Skapa ett konto på Startsidan för Azure och skapa ett Access Control namnområde.

  2. Visual Studio 2010 (valfri version)

Mer information finns i KRAV för ACS (https://go.microsoft.com/fwlink/?LinkId=221065).

Konfigurera exemplet

ACS-konfigurationen som krävs för det här exemplet kan utföras med antingen ACS-hanteringsportalen eller ACS-hanteringstjänsten. I det här avsnittet beskrivs båda alternativen.

  1. Alternativ 1: Konfigurera exemplet med hjälp av ACS-hanteringsportalen

  2. Alternativ 2: Konfigurera exemplet med hjälp av ACS-hanteringstjänsten

Alternativ 1: Konfigurera exemplet med hjälp av ACS-hanteringsportalen

Så här konfigurerar du exemplet med hjälp av ACS-hanteringsportalen

  1. Gå till Microsoft Azure Management Portal (https://manage.WindowsAzure.com), logga in och klicka sedan på Active Directory. (Felsökningstips: "Active Directory"-objektet saknas eller är inte tillgängligt)

  2. Om du vill skapa ett Access Control namnområde klickar du på Nytt, klickar på App Services, klickar på Access Control och sedan på Snabbskapa. (Eller klicka på Access Control namnområden innan du klickar på Ny.)

  3. Om du vill hantera ett Access Control namnområde väljer du namnområdet och klickar sedan på Hantera. (Eller klicka på Access Control Namnområden, välj namnområdet och klicka sedan på Hantera.)

    Den här åtgärden öppnar Access Control servicehanteringsportalen.

  4. Om du vill registrera ditt program med ACS klickar du på Program från förlitande part, klickar på Lägg till och anger sedan följande information i formuläret:

    • I fältet Namn anger du ASPNET Simple Service.

    • I fältet Sfär anger du https://localhost:8000/Service/

    • I fältet Retur-URL anger du https://localhost:8000/Service/

    • Välj SWT i listrutan Tokenformat .

    • I fältet Tokensigneringsnyckel klickar du på Generera för att skapa en tokensigneringsnyckel. Kopiera den här nyckeln för användning senare i konfigurationen.

    • I fältet Förfallodatum anger du ett lämpligt förfallodatum för nyckeln. Nyckeln är inte längre giltig på det här datumet

    • Lämna standardvärdena för de andra fälten.

  5. Klicka på Spara och klicka sedan på Start för att återgå till startsidan för Access Control Service-hanteringsportalen.

  6. När den förlitande parten är registrerad är det nu dags att skapa regler som fastställer de anspråk som ACS kommer att utfärda till ditt program. I det här exemplet skapar vi en regel som ger alla registrerade användarnamn och lösenord ett åtgärdsanspråk med värdet omvänd. Om du vill skapa den här regeln klickar du på Start för att återgå till startsidan för Access Control Service-hanteringsportalen, klickar på Regelgrupper och klickar sedan på Standardregelgrupp för ASP.NET Enkel tjänst. Lägg till en ny regel med följande inställningar:

    • I avsnittet Anspråks utfärdare väljer du Access Control Service.

    • I avsnittet Typ av indataanspråk väljer du Alla.

    • I avsnittet Indataanspråksvärde väljer du Alla.

    • I avsnittet Utdataanspråkstyp väljer du Ange typ och typåtgärd i fältet .

    • I avsnittet Utdataanspråksvärde väljer du Ange värde och skriver omvänd i fältet.

  7. Till skillnad från webbplatsexemplen förlitar sig det här exemplet på autentiseringsuppgifter som hanteras av ACS. Det sista steget när du konfigurerar ACS är att registrera användarnamnet och lösenordet för klientprogrammet som ska användas. Om du vill konfigurera ett nytt användarnamn och lösenord klickar du på Start för att återgå till startsidan för Access Control servicehanteringsportalen, klickar på Tjänstidentiteter, klickar på Lägg till och fyller i formuläret. I det här exemplet använder du användarnamnet acssample, lösenordet för typ av autentiseringsuppgifter och lösenordet pass@word1.

  8. Klicka på Spara och klicka sedan på Start för att återgå till startsidan för Access Control Service-hanteringsportalen.

Alternativ 2: Konfigurera exemplet med hjälp av ACS-hanteringstjänsten

Den Visual Studio exempellösningen har ett konsolprogram med namnet ConfigureSample som använder ACS-hanteringstjänsten och de vanliga hjälpkomponenter som definierats i Common-klassbiblioteket. Det här programmet kan användas för att konfigurera ett Access Control namnområde för användning med det här exemplet.

Så här konfigurerar du exemplet med hjälp av ACS-hanteringstjänsten

  1. Om du vill konfigurera exemplet öppnar du SamplesConfiguration.cs (acs\Management\ManagementService\Common). Ersätt platshållarna i klassen SamplesConfiguration i Common-klassbiblioteket med information om Access Control namnrymd. Du hittar informationen i ACS-hanteringsportalen.

    Navigera till ACS-hanteringsportalen: Gå till Microsoft Azure-hanteringsportalen (https://manage.WindowsAzure.com), logga in och klicka sedan på Active Directory. (Felsökningstips: "Active Directory"-objektet saknas eller är inte tillgängligt) Om du vill hantera ett Access Control namnområde väljer du namnområdet och klickar sedan på Hantera. (Eller klicka på Access Control Namnområden, välj namnområdet och klicka sedan på Hantera.)

    • ServiceNamespace – Ange namnet på ditt Access Control namnområde.

    • ManagementServiceIdentityName – Ange namnet på ett ACS-hanteringstjänstkonto. Standardvärdet är ManagementClient.

      Om du vill hitta namnet på hanteringstjänstens konto går du till ACS-hanteringsportalen och klickar på Hanteringstjänst. Kontona visas efter namn under Hanteringstjänstkonton.

    • ManagementServiceIdentityKey – Ange lösenordet för hanteringstjänstkontot.

      Om du vill hitta lösenordet för hanteringstjänstens konto går du till ACS-hanteringsportalen och klickar på Hanteringstjänst. Klicka på namnet på ett hanteringstjänstkonto och klicka sedan på Lösenord under Autentiseringsuppgifter. Lösenordet visas i fältet Lösenord . Om du vill kopiera lösenordet klickar du på Visa lösenord.

  2. Kör ConfigureSample-programmet i Visual Studio. Detta konfigurerar ACS för att köra det här exemplet.

  3. När ConfigureSample-programmet har slutförts matar det ut den genererade signeringsnyckeln för förlitande part till konsolen. Kopiera den här nyckeln till Urklipp.

Köra exemplet

Så här kör du exemplet

  1. Öppna exemplet i Visual Studio. Lösningen består av två projekt: tjänst och klient.

  2. Om du inte redan har gjort det anger du Access Control namnområdesinformation i Common\SamplesConfiguration.cs. Mer information finns i steg 1 i Alternativ 2: Konfigurera via ACS-hanteringstjänsten. Den här filen används också av service- och klientprojekten.

  3. Öppna filenweb.config i serviceprojektet. Ange din tokensigneringsnyckel i lämpliga AppSettings-element. Om du har konfigurerat ACS med hanteringstjänsten är det här värdet som du kopierade till Urklipp. Information om hur du hämtar tokensigneringsnyckeln finns i området Certifikat och nycklar i portalen. Nedan visas ett kodfragment som visar det här området i filen Service web.config.

    <appSettings>
        <add key="IssuerSigningKey" value="...update to your signing key..."/>
      </appSettings>
    
  4. Öppna filenapp.config i klientprojektet. Ange ditt användarnamn och lösenord i lämpliga AppSettings-element. Information om hur du hämtar användarnamnet och lösenordet som du tidigare registrerade finns i området Tjänstidentiteter i portalen. Nedan visas ett kodfragment som visar det här området (korrekt uppdaterat) för klienten app.config-filen.

      <appSettings>
        <add key="OAuthUserName" value="acssample" />
        <add key="OAuthPassword" value="pass@word1" />
        <add key="ServiceAddress" value="https://localhost:8000/Service/Default.aspx" />   
      </appSettings>
    
  5. Om du vill köra exemplet startar du tjänsten och startar sedan klienten. På klienten anger du en sträng som ska omvändas. Klientkonsolfönstret bör sedan visa utdata som anger att den har tagit emot en token från ACS.