Belirteç verme olayı için özel talep sağlayıcısı yapılandırma

Bu makalede, belirteç verme başlatma olayı için özel talep sağlayıcısının nasıl yapılandırıldığı açıklanmaktadır. Mevcut bir Azure İşlevleri REST API'sini kullanarak özel bir kimlik doğrulama uzantısı kaydedecek ve REST API'nizden ayrıştırmasını beklediğiniz öznitelikleri ekleyeceksiniz. Özel kimlik doğrulama uzantısını test etmek için bir belirteç almak ve talepleri görüntülemek üzere örnek bir OpenID Bağlan uygulaması kaydedeceksiniz.

Önkoşullar

  • Azure İşlevleri oluşturma özelliğine sahip bir Azure aboneliği. Mevcut bir Azure hesabınız yoksa ücretsiz deneme sürümüne kaydolun veya hesap oluştururken Visual Studio Aboneliği avantajlarınızı kullanın.
  • Belirteç verme başlangıç olayı için yapılandırılmış HTTP tetikleyici işlevine sahip bir Azure İşlevi uygulaması. Belirteciniz yoksa belirteç verme başlatma olayı HTTP tetikleyici işlevi oluşturma bölümündeki adımları izleyin.
  • Özel kimlik doğrulama uzantılarına genel bakış bölümünde ele alınan kavramlar hakkında temel bilgiler.
  • Microsoft Entra Id kiracısı. Bu nasıl yapılır kılavuzu için bir müşteri veya iş gücü kiracısı kullanabilirsiniz.
    • Dış kiracılar için kaydolma ve oturum açma kullanıcı akışı kullanın.

1. Adım: Özel kimlik doğrulama uzantısını kaydetme

Şimdi Microsoft Entra Id tarafından Azure işlevinizi çağırmak için kullanılacak özel bir kimlik doğrulama uzantısı yapılandıracaksınız. Özel kimlik doğrulama uzantısı REST API uç noktanız, REST API'nizden ayrıştırma talepleri ve REST API'nizde kimlik doğrulaması yapma hakkında bilgi içerir. Azure İşlevi uygulamanıza özel bir kimlik doğrulama uzantısı kaydetmek için bu adımları izleyin.

Not

En fazla 100 özel uzantı ilkesine sahip olabilirsiniz.

Özel kimlik doğrulama uzantısını kaydetme

  1. Azure portalında en az Uygulama Yönetici istrator ve Kimlik Doğrulaması Yönetici istrator olarak oturum açın.
  2. Microsoft Entra Id'yi arayıp seçin ve Kurumsal uygulamalar'ı seçin.
  3. Özel kimlik doğrulama uzantıları'nı ve ardından Özel uzantı oluştur'u seçin.
  4. Temel Bilgiler'de TokenIssuanceStart olay türünü ve ardından İleri'yi seçin.
  5. Uç Nokta Yapılandırması'nda aşağıdaki özellikleri doldurun:
    • Ad - Özel kimlik doğrulama uzantınız için bir ad. Örneğin, Belirteç verme olayı.
    • Hedef Url - Azure İşlevi URL'nizin {Function_Url} örneği. Azure İşlevi uygulamanızın Genel Bakış sayfasına gidin ve oluşturduğunuz işlevi seçin. İşleve Genel Bakış sayfasında İşlev Url'sini Al'ı seçin ve URL'yi kopyalamak için kopyala simgesini kullanın.
    • Açıklama - Özel kimlik doğrulama uzantılarınız için bir açıklama.
  6. İleri'yi seçin.
  7. API Kimlik Doğrulaması'nda Yeni uygulama kaydı oluştur seçeneğini belirleyerek işlev uygulamanızı temsil eden bir uygulama kaydı oluşturun.
  8. Uygulamaya kimlik doğrulama olayları API'Azure İşlevleri gibi bir ad verin.
  9. İleri'yi seçin.
  10. Talepler bölümünde, özel kimlik doğrulama uzantınızın REST API'nizden ayrıştırılmasını beklediğiniz ve belirteçle birleştirilecek öznitelikleri girin. Aşağıdaki talepleri ekleyin:
    • dateOfBirth
    • customRoles
    • apiVersion
    • correlationId
  11. İleri'yi ve ardından Özel kimlik doğrulama uzantısını ve ilişkili uygulama kaydını kaydeden Oluştur'u seçin.
  12. Azure İşlevi uygulamanızda ortam değişkenlerini ayarlamak için gereken API Kimlik Doğrulaması altındaki Uygulama Kimliği'ne dikkat edin.

Özel kimlik doğrulama uzantısı oluşturulduktan sonra API'ye izin vermeniz gerekir. Özel kimlik doğrulama uzantısı, izni kullanarak Receive custom authentication extension HTTP requests Azure İşlev Uygulamasında kimlik doğrulaması yapmak için kullanırclient_credentials.

  1. Yeni özel kimlik doğrulama uzantınızın Genel Bakış sayfasını açın. Bir kimlik sağlayıcısı eklerken gerekli olacağı için API Kimlik Doğrulaması altındaki Uygulama Kimliğini not alın.

  2. API Kimlik Doğrulaması'nın altında İzin ver'i seçin.

  3. Yeni bir pencere açılır ve oturum açıldıktan sonra özel kimlik doğrulama uzantısı HTTP isteklerini almak için izinler istenir. Bu, özel kimlik doğrulama uzantısının API'nizde kimlik doğrulaması yapmasına olanak tanır. Kabul Et’i seçin.

    Yönetici onayı verme adımlarını gösteren ekran görüntüsü.

2. Adım: OpenID Bağlan uygulamasını zenginleştirilmiş belirteçleri alacak şekilde yapılandırma

Belirteç almak ve özel kimlik doğrulama uzantısını test etmek için uygulamayı kullanabilirsiniz https://jwt.ms . Bir belirtecin kodu çözülen içeriğini görüntüleyen Microsoft'a ait bir web uygulamasıdır (belirtecin içeriği tarayıcınızdan asla ayrılmaz).

2.1 Test web uygulamasını kaydetme

jwt.ms web uygulamasını kaydetmek için şu adımları izleyin:

  1. Azure portalındaki Giriş sayfasında Microsoft Entra Id'yi seçin.

  2. Uygulama kayıtları> Yeni kayıt'ı seçin.

  3. Uygulama için bir Ad girin. Örneğin, Test uygulamam.

  4. Desteklenen hesap türleri'nin altında Yalnızca bu kuruluş dizinindeki Hesaplar'ı seçin.

  5. Yeniden Yönlendirme URI'sindeki Bir platform seçin açılan listesinde Web'i seçin ve URL metin kutusuna girinhttps://jwt.ms.

  6. Uygulama kaydını tamamlamak için Kaydet'i seçin.

    Desteklenen hesap türünü seçmeyi ve URI'yi yeniden yönlendirmeyi gösteren ekran görüntüsü.

  7. Uygulama kaydınızın Genel Bakış sayfasında Uygulama (istemci) kimliğini kopyalayın. Uygulama kimliği, sonraki adımlarda olarak {App_to_enrich_ID} adlandırılır. Microsoft Graph'ta buna appId özelliği tarafından başvurulur.

    Uygulama kimliğinin nasıl kopyalandığını gösteren ekran görüntüsü.

2.2 Örtük akışı etkinleştirme

jwt.ms test uygulaması örtük akışı kullanır. Test uygulamam kaydınızda örtük akışı etkinleştirin:

  1. Yönet'in altında Kimlik Doğrulama'yı seçin.
  2. Örtük verme ve karma akışlar'ın altında kimlik belirteçleri (örtük ve karma akışlar için kullanılır) onay kutusunu seçin.
  3. Kaydet'i seçin.

2.3 Uygulamanızı talep eşleme ilkesi için etkinleştirme

Talep eşleme ilkesi, özel kimlik doğrulama uzantısından döndürülen özniteliklerin belirteçle eşlenmesi için kullanılır. Belirteçlerin genişletilmesine izin vermek için uygulama kaydını eşlenmiş talepleri kabul etmek üzere açıkça etkinleştirmeniz gerekir:

  1. Test Uygulamam kaydınızda Yönet'in altında Bildirim'i seçin.
  2. Bildirimde özniteliğini acceptMappedClaims bulun ve değerini olarak trueayarlayın.
  3. accessTokenAcceptedVersion ayarını 2 yapın.
  4. Değişiklikleri kaydetmek için Kaydet'i seçin.

Aşağıdaki JSON kod parçacığında bu özelliklerin nasıl yapılandırılır gösterilmektedir.

{
	"id": "22222222-0000-0000-0000-000000000000",
	"acceptMappedClaims": true,
	"accessTokenAcceptedVersion": 2,  
    ...
}

Uyarı

Kötü amaçlı aktörlerin uygulamanız için talep eşleme ilkeleri oluşturmasına izin verebilen çok kiracılı uygulamalar için özelliğini true olarak ayarlamayınacceptMappedClaims. Bunun yerine özel bir imzalama anahtarı yapılandırın.

Uygulamanıza özel talep sağlayıcısı atama adlı sonraki adıma geçin.

3. Adım: Uygulamanıza özel talep sağlayıcısı atama

Belirteçlerin özel kimlik doğrulama uzantısından gelen taleplerle verilmesi için, uygulamanıza özel bir talep sağlayıcısı atamanız gerekir. Bu, belirteç hedef kitlesini temel aldığından sağlayıcının kimlik belirtecindeki talepleri almak için istemci uygulamasına ve erişim belirtecindeki talepleri almak için kaynak uygulamaya atanması gerekir. Özel talep sağlayıcısı, belirteç verme başlatma olayı dinleyicisi ile yapılandırılmış özel kimlik doğrulama uzantısına dayanır. Özel talep sağlayıcısından taleplerin tümünün veya bir alt kümesinin belirteçle eşlenip eşlenmeyeceğini seçebilirsiniz.

Not

Uygulamalar ve özel uzantılar arasında yalnızca 250 benzersiz atama oluşturabilirsiniz. Aynı özel uzantı çağrısını birden çok uygulamaya uygulamak istiyorsanız authenticationEventListeners Microsoft Graph API'sini kullanarak birden çok uygulama için dinleyici oluşturmanızı öneririz. Bu, Azure portalında desteklenmez.

Test uygulamamı özel kimlik doğrulama uzantınıza bağlamak için şu adımları izleyin:

Özel kimlik doğrulama uzantısını özel talep sağlayıcı kaynağı olarak atamak için;

  1. Azure portalındaki Giriş sayfasında Microsoft Entra Id'yi seçin.

  2. Kurumsal uygulamalar'ı veardından Yönet'in altında Tüm uygulamalar'ı seçin. Listeden Test uygulamam'ı bulun ve seçin.

  3. Test uygulamam'ın Genel Bakış sayfasında Yönet'e gidin ve Çoklu oturum açma'yı seçin.

  4. Öznitelikler ve Talepler'in altında Düzenle'yi seçin.

    Uygulama taleplerini yapılandırmayı gösteren ekran görüntüsü.

  5. Gelişmiş ayarlar menüsünü genişletin.

  6. Özel talep sağlayıcısı'nın yanında Yapılandır'ı seçin.

  7. Özel talep sağlayıcısı açılan kutusunu genişletin ve daha önce oluşturduğunuz Belirteç verme olayını seçin.

  8. Kaydet'i seçin.

Ardından, özel talep sağlayıcısından belirteçte talep olarak verilmesi gereken öznitelikleri atayın:

  1. Yeni talep eklemek için Yeni talep ekle'yi seçin. Verilmesini istediğiniz talep için dateOfBirth gibi bir ad girin.

  2. Kaynak'ın altında Öznitelik'i seçin ve Kaynak özniteliği açılan kutusunda customClaimsProvider.dateOfBirthöğesini seçin.

    Uygulamanıza talep eşlemesi eklemeyi gösteren ekran görüntüsü.

  3. Kaydet'i seçin.

  4. customClaimsProvider.customRoles, customClaimsProvider.apiVersion ve customClaimsProvider.correlationId özniteliklerini ve buna karşılık gelen adı eklemek için bu işlemi yineleyin. Talebin adını özniteliğin adıyla eşleştirmek iyi bir fikirdir.

4. Adım: Azure İşlevinizi koruma

Microsoft Entra özel kimlik doğrulama uzantısı, HTTP Authorization üst bilgisinde Azure işlevinize gönderilen bir erişim belirtecini almak için sunucudan sunucuya akışı kullanır. özellikle üretim ortamında işlevinizi Azure'da yayımlarken yetkilendirme üst bilgisinde gönderilen belirteci doğrulamanız gerekir.

Azure işlevinizi korumak için, gelen belirteçleri Azure İşlevleri kimlik doğrulama olayları API uygulama kaydınızla doğrulamak üzere Microsoft Entra kimlik doğrulamasını tümleştirmek için bu adımları izleyin. Kiracı türünüz temelinde aşağıdaki sekmelerden birini seçin.

Not

Azure işlev uygulaması, özel kimlik doğrulama uzantınızın kayıtlı olduğu kiracıdan farklı bir Azure kiracısında barındırılıyorsa, Açık Kimlik Bağlan sekmesini seçin.

4.1 Microsoft Entra kimlik sağlayıcısını kullanma

Microsoft Entra'yi Azure İşlevi uygulamanıza kimlik sağlayıcısı olarak eklemek için aşağıdaki adımları kullanın.

  1. Azure portalında, daha önce yayımladığınız işlev uygulamasını bulun ve seçin.

  2. Ayarlar altında Kimlik Doğrulaması'yı seçin.

  3. Kimlik sağlayıcısı ekle'yi seçin.

  4. Kimlik sağlayıcısı olarak Microsoft'u seçin.

  5. Kiracı türü olarak İş Gücü'nü seçin.

  6. Uygulama kaydı altında, Uygulama kayıt türü için bu dizinde var olan bir uygulama kaydını seçin'i seçin ve özel talep sağlayıcısını kaydederken daha önce oluşturduğunuzAzure İşlevleri kimlik doğrulama olayları API'sinin uygulama kaydını seçin.

  7. İş gücü kiracınızın kiracı kimliği olan {tenantId} aşağıdaki veren URL'sini https://login.microsoftonline.com/{tenantId}/v2.0girin.

  8. Kimliği doğrulanmamış istekler'in altında kimlik sağlayıcısı olarak HTTP 401 Yetkisiz'yi seçin.

  9. Belirteç deposu seçeneğinin seçimini kaldırın.

  10. Azure İşlevinize kimlik doğrulaması eklemek için Ekle'yi seçin.

    İş gücü kiracısındayken işlev uygulamanıza kimlik doğrulaması eklemeyi gösteren ekran görüntüsü.

4.2 OpenID Bağlan kimlik sağlayıcısını kullanma

Microsoft kimlik sağlayıcısını yapılandırdıysanız bu adımı atlayın. Aksi takdirde Azure İşlevi, özel kimlik doğrulama uzantınızın kayıtlı olduğu kiracıdan farklı bir kiracıda barındırılıyorsa işlevinizi korumak için şu adımları izleyin:

İstemci gizli dizisi oluşturma

  1. Azure portalının Giriş sayfasında Microsoft Entra Id> Uygulama kayıtları öğesini seçin.
  2. Daha önce oluşturduğunuz Azure İşlevleri kimlik doğrulama olayları API'sinin uygulama kaydını seçin.
  3. Sertifikalar ve gizli diziler İstemci gizli>dizileri>Yeni istemci gizli dizisi'ni seçin.
  4. Gizli dizi için bir süre sonu seçin veya özel bir yaşam süresi belirtin, bir açıklama ekleyin ve Ekle'yi seçin.
  5. Gizli anahtarın değerini istemci uygulama kodunuzda kullanmak üzere kaydedin. Bu sayfadan ayrıldıktan sonra bu gizli anahtar değeri hiçbir zaman görüntülenmez.

OpenID Bağlan kimlik sağlayıcısını Azure İşlevi uygulamanıza ekleyin.

  1. Daha önce yayımladığınız işlev uygulamasını bulun ve seçin.

  2. Ayarlar altında Kimlik Doğrulaması'yı seçin.

  3. Kimlik sağlayıcısı ekle'yi seçin.

  4. Kimlik sağlayıcısı olarak OpenID Bağlan'ı seçin.

  5. Contoso Microsoft Entra Id gibi bir ad sağlayın.

  6. Meta Veri girdisinin altında, Belge URL'sinin aşağıdaki URL'sini girin. değerini {tenantId} Microsoft Entra kiracı kimliğiniz ile değiştirin.

    https://login.microsoftonline.com/{tenantId}/v2.0/.well-known/openid-configuration
    
  7. Uygulama kaydı altında, daha önce oluşturduğunuz Azure İşlevleri kimlik doğrulama olayları API'si uygulama kaydının uygulama kimliğini (istemci kimliği) girin.

  8. Azure İşlevi'ne dönün, Uygulama kaydı altında İstemci gizli dizisini girin.

  9. Belirteç deposu seçeneğinin seçimini kaldırın.

  10. OpenID Bağlan kimlik sağlayıcısını eklemek için Ekle'yi seçin.

5. Adım: Uygulamayı test edin

Özel talep sağlayıcınızı test etmek için şu adımları izleyin:

  1. Yeni bir özel tarayıcı açın ve aşağıdaki URL'de gezinin ve oturum açın.

    https://login.microsoftonline.com/{tenantId}/oauth2/v2.0/authorize?client_id={App_to_enrich_ID}&response_type=id_token&redirect_uri=https://jwt.ms&scope=openid&state=12345&nonce=12345
    
  2. değerini kiracı kimliğiniz, kiracı adınız veya doğrulanmış etki alanı adlarınızdan biriyle değiştirin {tenantId} . Örneğin, contoso.onmicrosoft.com.

  3. değerini Test uygulamam istemci kimliğiyle değiştirin{App_to_enrich_ID}.

  4. Oturum açtıktan sonra adresinde kodu çözülen belirteciniz https://jwt.msgösterilir. Azure İşlevi'nden gelen taleplerin kodu çözülen belirteçte sunulduğunu doğrulayın, örneğin, dateOfBirth.

Ayrıca bkz.