Aracılığıyla paylaş


Öznitelik koleksiyonu başlatma ve gönderme olayları için özel kimlik doğrulama uzantısı oluşturma (önizleme)

Şunlar için geçerlidir: Gri X simgesine sahip beyaz daire. İş gücü kiracılarıBeyaz onay işareti simgesi olan yeşil daire.Dış kiracılar (daha fazla bilgi edinin)

Bu makalede, müşteriler için Microsoft Entra Dış Kimlik kullanıcı kayıt deneyiminin nasıl genişletıldığı açıklanır. Müşteri kayıt kullanıcı akışlarında, olay dinleyicileri öznitelik toplama işlemini öznitelik koleksiyonundan önce ve öznitelik gönderimi sırasında genişletmek için kullanılabilir:

  • OnAttributeCollectionStart olayı, öznitelik koleksiyonu sayfasının işlenmesinden önce öznitelik koleksiyonu adımının başında gerçekleşir. Değerleri önceden doldurma ve engelleme hatası görüntüleme gibi eylemler ekleyebilirsiniz.

    İpucu

    Hemen deneyin

    Bu özelliği denemek için Woodgrove Market tanıtımına gidin ve "Önceden doldurma kaydolma öznitelikleri" kullanım örneğini başlatın.

  • OnAttributeCollectionSubmit olayı, kullanıcı öznitelikleri girip gönderdikten sonra gerçekleşir. Kullanıcının girdilerini doğrulama veya değiştirme gibi eylemler ekleyebilirsiniz.

    İpucu

    Hemen deneyin

    Bu özelliği denemek için Woodgrove Groceries tanıtımına gidin ve "Kaydolma özniteliklerini doğrula" kullanım örneğini veya "Kullanıcının kaydolma işlemini sürdürmesini engelle" kullanım örneğini başlatın.

Öznitelik koleksiyonu başlatma ve gönderme olayları için özel kimlik doğrulama uzantısı oluşturmaya ek olarak, her olay için gerçekleştirecek iş akışı eylemlerini tanımlayan bir REST API oluşturmanız gerekir. REST API'nizi oluşturmak ve barındırmak için herhangi bir programlama dilini, çerçeveyi ve barındırma ortamını kullanabilirsiniz. Bu makalede, C# Azure İşlevi kullanmaya başlamanın hızlı bir yolu gösterilmektedir. Azure İşlevleri ile, önce bir sanal makine (VM) oluşturmak veya bir web uygulaması yayımlamak zorunda kalmadan kodunuzu sunucusuz bir ortamda çalıştırırsınız.

Önkoşullar

1. Adım: Özel kimlik doğrulama uzantıları REST API'sini oluşturma (Azure İşlev uygulaması)

İpucu

Bu makaledeki adımlar, başladığınız portala göre biraz değişiklik gösterebilir.

Bu adımda, Azure İşlevleri kullanarak bir HTTP tetikleyici işlevi API'sini oluşturursunuz. İşlev API'si, kullanıcı akışlarınız için iş mantığının kaynağıdır. Tetikleyici işlevinizi oluşturduktan sonra aşağıdaki olaylardan biri için yapılandırabilirsiniz:

  1. Yönetici hesabınızla Azure portalında oturum açın.

  2. Azure portalı menüsünde veya Giriş sayfasında Kaynak oluştur'u seçin.

  3. İşlev Uygulaması'yı arayıp seçin ve Oluştur'u seçin.

  4. Temel Bilgiler sayfasında, aşağıdaki tabloda belirtilen işlev uygulaması ayarlarını kullanın:

    Ayar Önerilen değer Açıklama
    Abonelik Aboneliğiniz Yeni işlev uygulamasının oluşturulacağı abonelik.
    Kaynak Grubu myResourceGroup İşlev uygulamanızı oluşturacağınız yeni grup için ve mevcut kaynak grubunu veya adı seçin.
    İşlev Uygulamasının adı Genel olarak benzersiz bir ad Yeni işlev uygulamasını tanımlayan ad. Geçerli karakterler şunlardır: a-z (büyük/küçük harf duyarsız), 0-9 ve -.
    Yayınla Kod Kod dosyalarını veya Docker kapsayıcısını yayımlama seçeneği. Bu öğretici için Kod'a tıklayın.
    Çalışma zamanı yığını .NET Tercih ettiğiniz programlama dili. Bu öğretici için .NET'i seçin.
    Sürüm 6 (LTS) İşlemde .NET çalışma zamanının sürümü. İşlem içi, bu kılavuz için önerilen portalda işlevler oluşturabileceğinizi ve değiştirebileceğinizi bildirir
    Bölge Tercih edilen bölge Size yakın veya işlevlerinizin erişebileceği diğer hizmetlere yakın bir bölge seçin.
    İşletim Sistemi Windows çalışma zamanı yığını seçiminize göre işletim sistemi sizin için önceden seçilmiştir.
    Plan türü Kullanım (Sunucusuz) Kaynakların işlev uygulamanıza nasıl ayrılacağını tanımlayan barındırma planı.
  5. Uygulama yapılandırma seçimlerini gözden geçirmek için Gözden geçir + oluştur'u ve ardından Oluştur'u seçin. Dağıtım birkaç dakika sürer.

  6. Dağıtıldıktan sonra Kaynağa git'i seçerek yeni işlev uygulamanızı görüntüleyin.

1.1 HTTP tetikleyici işlevleri oluşturma

Azure İşlevi uygulamasını oluşturduğunuza göre, bir HTTP isteğiyle çağırmak istediğiniz eylemler için HTTP tetikleyici işlevleri oluşturursunuz. HTTP tetikleyicilerine başvurulur ve Microsoft Entra özel kimlik doğrulama uzantınız tarafından çağrılır.

  1. İşlev uygulamanızın Genel Bakış sayfasında İşlevler bölmesini seçin ve Azure portalında oluştur'un altında İşlev oluştur'u seçin.
  2. İşlev Oluştur penceresinde Geliştirme ortamı özelliğini Portalda geliştir olarak bırakın. Şablon'un altında HTTP tetikleyicisi'ni seçin.
  3. Şablon ayrıntıları altında, Yeni İşlev özelliği için CustomAuthenticationExtensionsAPI girin.
  4. Yetkilendirme düzeyi için İşlev'i seçin.
  5. Oluştur'u belirleyin.

1.2 OnAttributeCollectionStart için HTTP tetikleyicisini yapılandırma

  1. Menüden Kod + Test'i seçin.
  2. Uygulamak istediğiniz senaryo için aşağıdaki sekmeyi seçin: Continue, Block veya SetPrefillValues. Kodu, sağlanan kod parçacıklarıyla değiştirin.
  3. Kodu değiştirdikten sonra üstteki menüden İşlev Url'sini Al'ı seçin ve URL'yi kopyalayın. 2. Adım: Hedef Url için özel kimlik doğrulama uzantısı oluşturma ve kaydetme bölümünde bu URL'yi kullanırsınız.

Başka bir eyleme gerek kalmaması durumunda kullanıcının kayıt akışına devam etmesi için bu HTTP tetikleyicisini kullanın.

#r "Newtonsoft.Json"

using System.Net;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Primitives;
using Newtonsoft.Json;
using System.Text;

public static async Task<object> Run(HttpRequest req, ILogger log)
{
    log.LogInformation("C# HTTP trigger function processed a request.");

    string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
    dynamic request = JsonConvert.DeserializeObject(requestBody);


    var actions = new List<ContinueWithDefaultBehavior>{
        new ContinueWithDefaultBehavior { type = "microsoft.graph.attributeCollectionStart.continueWithDefaultBehavior"}
    };

    var dataObject = new Data {
        type = "microsoft.graph.onAttributeCollectionStartResponseData",
        actions= actions
    };

    dynamic response = new ResponseObject {
        data = dataObject
    };

    // Send the response
    return response;
}

public class ResponseObject
{
    public Data data { get; set; }
}

[JsonObject]
public class Data {
    [JsonProperty("@odata.type")]
    public string type { get; set; }
    public List<ContinueWithDefaultBehavior> actions { get; set; }
}

[JsonObject]
public class ContinueWithDefaultBehavior {
    [JsonProperty("@odata.type")]
    public string type { get; set; }
}

1.3 OnAttributeCollectionSubmit için HTTP tetikleyicisini yapılandırma

  1. Menüden Kod + Test'i seçin.
  2. Uygulamak istediğiniz senaryo için aşağıdaki sekmeyi seçin: Devam Et, Engelle, Değerleri değiştir veya Doğrulama hatası. Kodu, sağlanan kod parçacıklarıyla değiştirin.
  3. Kodu değiştirdikten sonra üstteki menüden İşlev Url'sini Al'ı seçin ve URL'yi kopyalayın. 2. Adım: Hedef Url için özel kimlik doğrulama uzantısı oluşturma ve kaydetme bölümünde bu URL'yi kullanırsınız.

Başka bir eyleme gerek kalmaması durumunda kullanıcının kayıt akışına devam etmesi için bu HTTP tetikleyicisini kullanın.

#r "Newtonsoft.Json"

using System.Net;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Primitives;
using Newtonsoft.Json;
using System.Text;

public static async Task<object> Run(HttpRequest req, ILogger log)
{
    log.LogInformation("C# HTTP trigger function processed a request.");

    string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
    dynamic request = JsonConvert.DeserializeObject(requestBody);
    
    var actions = new List<ContinueWithDefaultBehavior>{
        new ContinueWithDefaultBehavior { type = "microsoft.graph.attributeCollectionSubmit.continueWithDefaultBehavior"}
    };
						
    var dataObject = new Data {
        type = "microsoft.graph.onAttributeCollectionSubmitResponseData",
        actions= actions
    };
	    
	dynamic response = new ResponseObject {
        data = dataObject
    };

    // Send the response
    return response;
}

public class ResponseObject
{
    public Data data { get; set; }
}

[JsonObject]
public class Data {
    [JsonProperty("@odata.type")]
    public string type { get; set; }
    
    public List<ContinueWithDefaultBehavior> actions { get; set; }
}

[JsonObject]
public class ContinueWithDefaultBehavior {
    [JsonProperty("@odata.type")]
	public string type { get; set; }
}

2. Adım: Özel kimlik doğrulama uzantısı oluşturma ve kaydetme

Bu adımda, Microsoft Entra Id tarafından Azure işlevinizi çağırmak için kullanılan özel bir kimlik doğrulama uzantısı kaydedersiniz. Özel kimlik doğrulama uzantısı REST API uç noktanız, öznitelik koleksiyonu başlatma ve REST API'nizden ayrıştırma eylemleri gönderme ve REST API'nizde kimlik doğrulaması yapma hakkında bilgi içerir.

  1. Microsoft Entra yönetim merkezinde en azından Bir Uygulama Yönetici istrator ve Kimlik Doğrulaması Yönetici istrator olarak oturum açın.

  2. Kimlik>Dış Kimlikleri>Özel kimlik doğrulama uzantıları'na göz atın.

  3. Özel uzantı oluştur'u seçin.

  4. Temel Bilgiler'de AttributeCollectionStart olayını veya AttributeCollectionSubmit olayını seçin ve ardından İleri'yi seçin. Bunun önceki adımda yapılandırmayla eşleştiğinden emin olun.

  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, Öznitelik KoleksiyonuNda Olayı.
    • Hedef Url - Azure İşlevi URL'nizin {Function_Url} örneği.
    • 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. Özel kimlik doğrulama uzantısını ve ilişkili uygulama kaydını oluşturan Oluştur'u seçin.

Özel kimlik doğrulama uzantınız oluşturulduktan sonra, özel kimlik doğrulama uzantısının API'nizde kimlik doğrulaması yapmasına izin veren kayıtlı uygulamaya uygulama onayı verin.

  1. Kimlik>Dış Kimlikleri>Özel kimlik doğrulama uzantıları (Önizleme) bölümüne gidin.
  2. Listeden özel kimlik doğrulama uzantınızı seçin.
  3. Genel Bakış sekmesinde İzin ver düğmesini seçerek kayıtlı uygulamaya yönetici onayı verin. Ö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. Kabul Et’i seçin.

3. Adım: Kullanıcı akışına özel kimlik doğrulama uzantısı ekleme

Artık özel kimlik doğrulama uzantısını bir veya daha fazla kullanıcı akışınızla ilişkilendirebilirsiniz.

Not

Kullanıcı akışı oluşturmanız gerekiyorsa, Müşteriler için kaydolma ve oturum açma kullanıcı akışı oluşturma bölümünde yer alan adımları izleyin.

3.1 Özel kimlik doğrulama uzantısını mevcut bir kullanıcı akışına ekleme

  1. Microsoft Entra yönetim merkezinde en az Bir Uygulama Yönetici istrator ve Kimlik Doğrulama Yönetici istrator olarak oturum açın

  2. Birden çok kiracıya erişiminiz varsa, dış kiracınıza geçmek için üst menüdeki Ayarlar simgesini kullanın.

  3. Kimlik>Dış Kimlikleri>Kullanıcı akışları'na göz atın.

  4. Listeden kullanıcı akışını seçin.

  5. Özel kimlik doğrulama uzantıları'nı seçin.

  6. Özel kimlik doğrulama uzantıları sayfasında, özel kimlik doğrulama uzantınızı kullanıcı akışınızdaki iki farklı adımla ilişkilendirebilirsiniz:

    • Kullanıcıdan bilgi toplamadan önce OnAttributeCollectionStart olayıyla ilişkilendirilir. Düzenleme kalemini seçin. Yalnızca OnAttributeCollectionStart olayı için yapılandırılan özel uzantılar görüntülenir. Öznitelik koleksiyonu başlangıç olayı için yapılandırdığınız uygulamayı seçin ve ardından Seç'i seçin.
    • Kullanıcı bilgilerini gönderdiğinde OnAttributeCollectionSubmit olayıyla ilişkilendirilir. yalnızca OnAttributeCollectionSubmit olayı için yapılandırılan özel uzantılar görüntülenir. Öznitelik koleksiyonu gönderme olayı için yapılandırdığınız uygulamayı seçin ve ardından Seç'i seçin.
  7. Her iki öznitelik toplama adımının yanında listelenen uygulamaların doğru olduğundan emin olun.

  8. Kaydet simgesini seçin.

4. Adım: Uygulamayı test edin

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).

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

4.1 jwt.ms web uygulamasını kaydetme

  1. Microsoft Entra yönetim merkezinde en azından Bir Uygulama Yönetici istratörü olarak oturum açın.
  2. Kimlik>Uygulamaları>Uygulama kayıtları'na göz atın.
  3. Yeni kayıt öğesini seçin.
  4. Uygulama için bir Ad girin. Örneğin, Test uygulamam.
  5. Desteklenen hesap türleri'nin altında Yalnızca bu kuruluş dizinindeki Hesaplar'ı seçin.
  6. Yeniden Yönlendirme URI'sindeki Bir platform seçin açılan listesinde Web'i seçin ve URL metin kutusuna girinhttps://jwt.ms.
  7. Uygulama kaydını tamamlamak için Kaydet'i seçin.

4.2 Uygulama kimliğini alma

Uygulama kaydınızda, Genel Bakış'ın altında Uygulama (istemci) kimliğini kopyalayın. Uygulama kimliği, sonraki adımlarda olarak <client_id> adlandırılır. Microsoft Graph'ta buna appId özelliği tarafından başvurulur.

4.3 Ö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.

5. 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.

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, OpenID Bağlan kimlik sağlayıcısını kullanarak 5.1 adımına geçin.

5.1 Azure İşlevinize kimlik sağlayıcısı ekleme

  1. Azure Portal’ında oturum açın.

  2. Daha önce yayımladığınız işlev uygulamasına gidin ve bu uygulamayı seçin.

  3. Soldaki menüden Kimlik Doğrulaması'nı seçin.

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

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

  6. Kiracı türü olarak Müşteri'yi seçin.

  7. Uygulama kaydı altında, özel talep sağlayıcısını kaydederken daha önce oluşturduğunuzAzure İşlevleri kimlik doğrulama olayları API'sinin uygulama kaydını girinclient_id.

  8. Veren URL'si için aşağıdaki URL'yi https://{domainName}.ciamlogin.com/{tenant_id}/v2.0girin.

    • {domainName} , dış kiracınızın etki alanı adıdır.
    • {tenantId} , dış kiracınızın kiracı kimliğidir. Özel kimlik doğrulama uzantınız burada kayıtlı olmalıdır.
  9. Kimliği doğrulanmamış istekler'in altında kimlik sağlayıcısı olarak HTTP 401 Yetkisiz'yi seçin.

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

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

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

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

5. Adım: Azure İşlevinizi koruma'yı 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:

  1. Azure portalında oturum açın, ardından daha önce yayımladığınız işlev uygulamasına gidin ve bu uygulamayı seçin.

  2. Soldaki menüden Kimlik Doğrulaması'nı 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. Microsoft Entra yönetim merkezinde:

    1. Daha önce oluşturduğunuz Azure İşlevleri kimlik doğrulama olayları API'sinin uygulama kaydını seçin.
    2. Sertifikalar ve gizli diziler İstemci gizli>dizileri>Yeni istemci gizli dizisi'ni seçin.
    3. İstemci gizli diziniz için bir açıklama ekleyin.
    4. Gizli dizi için bir süre sonu seçin veya özel bir yaşam süresi belirtin.
    5. Ekle'yi seçin.
    6. 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.
  9. Azure İşlevi'ne dönün, Uygulama kaydı altında İstemci gizli dizisini girin.

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

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

6. Adım: Uygulamayı test edin

Özel kimlik doğrulama uzantınızı test etmek için şu adımları izleyin:

  1. Yeni bir özel tarayıcı açın ve aşağıdaki URL'ye gidin:

    https://<domainName>.ciamlogin.com/<tenant_id>/oauth2/v2.0/authorize?client_id=<client_id>&response_type=code+id_token&redirect_uri=https://jwt.ms&scope=openid&state=12345&nonce=12345
    
    • değerini <domainName> dış kiracı adınız ile, yerine de dış kiracı kimliğinizi yazın <tenant-id> .
    • değerini, kullanıcı akışına eklediğiniz uygulamanın kimliğiyle değiştirin <client_id> .
  2. Oturum açtıktan sonra kodu çözülen belirteciniz adresinde https://jwt.msgösterilir.

Sonraki adımlar