Öznitelik koleksiyonu başlatma ve gönderme olayları için özel kimlik doğrulama uzantısı oluşturma (önizleme)
Şunlar için geçerlidir: İş gücü kiracıları 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.
Bahşiş
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.
Bahşiş
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
- Azure İşlevleri dahil olmak üzere Azure hizmetlerini kullanmak için bir Azure aboneliğine ihtiyacınız vardır. Mevcut bir Azure hesabınız yoksa ücretsiz deneme sürümüne kaydolabilir veya hesap oluştururken Visual Studio Aboneliği avantajlarınızı kullanabilirsiniz.
- Kaydolma ve oturum açma kullanıcı akışı.
1. Adım: Özel kimlik doğrulama uzantıları REST API'sini oluşturma (Azure İşlev uygulaması)
Bahşiş
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:
Azure portalı menüsünden veya Giriş sayfasında Kaynak oluştur'u seçin.
İşlev Uygulaması'yı arayıp seçin ve Oluştur'u seçin.
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ı adı Genel olarak benzersiz ad Yeni işlev uygulamasını tanımlayan ad. Geçerli karakterler şunlardır a-z
(büyük/küçük harfe duyarsız),0-9
ve-
.Yayınlamak 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ü Tüketim (Sunucusuz) kaynakların işlev uygulamanıza nasıl ayrıldığını tanımlayan barındırma planı. 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.
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.
- İş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.
- İş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.
- Şablon ayrıntıları altında, Yeni İşlev özelliği için CustomAuthenticationExtensionsAPI girin.
- Yetkilendirme düzeyi için İşlev'i seçin.
- Oluştur'u seçin.
1.2 OnAttributeCollectionStart için HTTP tetikleyicisini yapılandırma
- Menüden Kod + Test'i seçin.
- 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.
- 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
- Menüden Kod + Test'i seçin.
- 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.
- 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.
Microsoft Entra yönetim merkezinde en az Uygulama Yöneticisi ve Kimlik Doğrulama Yöneticisi olarak oturum açın.
Kimlik>Dış Kimlikleri>Özel kimlik doğrulama uzantıları'na göz atın.
Özel uzantı oluştur'u seçin.
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.
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.
İleri'yi seçin.
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.
Uygulamaya kimlik doğrulama olayları API'Azure İşlevleri gibi bir ad verin.
İleri'yi seçin.
Özel kimlik doğrulama uzantısını ve ilişkili uygulama kaydını oluşturan Oluştur'u seçin.
2.2 Yönetici onayı verme
Ö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.
- Kimlik>Dış Kimlikleri>Özel kimlik doğrulama uzantıları (Önizleme) bölümüne gidin.
- Listeden özel kimlik doğrulama uzantınızı seçin.
- 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
Microsoft Entra yönetim merkezinde en az Uygulama Yöneticisi ve Kimlik Doğrulama Yöneticisi olarak oturum açın
Birden çok kiracıya erişiminiz varsa, dış kiracınıza geçmek için üst menüdeki Ayarlar simgesini kullanın.
Kimlik>Dış Kimlikleri>Kullanıcı akışları'na göz atın.
Listeden kullanıcı akışını seçin.
Özel kimlik doğrulama uzantıları'nı seçin.
Ö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.
Her iki öznitelik toplama adımının yanında listelenen uygulamaların doğru olduğundan emin olun.
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
- Microsoft Entra yönetim merkezinde en az Bir Uygulama Yöneticisi olarak oturum açın.
- Kimlik>Uygulamaları>Uygulama kayıtları'na göz atın.
- Yeni kayıt'ı seçin.
- Uygulama için bir Ad girin. Örneğin, Test uygulamam.
- Desteklenen hesap türleri'nin altında Yalnızca bu kuruluş dizinindeki Hesaplar'ı seçin.
- Yeniden Yönlendirme URI'sindeki Bir platform seçin açılan listesinde Web'i seçin ve URL metin kutusuna girin
https://jwt.ms
. - 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. Aşağıdaki adımlarla Test uygulamam kaydınızda örtük akışı etkinleştirin.
Önemli
Microsoft, kullanılabilir en güvenli kimlik doğrulama akışının kullanılmasını önerir. Bu yordamda test için kullanılan kimlik doğrulama akışı, uygulamada çok yüksek düzeyde güven gerektirir ve diğer akışlarda mevcut olmayan riskleri taşır. Bu yaklaşım, üretim uygulamalarınızda kullanıcıların kimliğini doğrulamak için kullanılmamalıdır (daha fazla bilgi edinin).
- Yönet'in altında Kimlik Doğrulama'yı seçin.
- Ö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.
- 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 Connect kimlik sağlayıcısını kullanma adımına geçin.
5.1 Azure İşlevinize kimlik sağlayıcısı ekleme
Daha önce yayımladığınız işlev uygulamasına gidin ve bu uygulamayı seçin.
Soldaki menüden Kimlik Doğrulaması'nı seçin.
Kimlik sağlayıcısı ekle'yi seçin.
Kimlik sağlayıcısı olarak Microsoft'u seçin.
Kiracı türü olarak Müşteri'yi seçin.
Uygulama kaydı altında, özel talep sağlayıcısını kaydederken daha önce oluşturduğunuz Azure İşlevleri kimlik doğrulama olayları API'sinin uygulama kaydını girin
client_id
.Veren URL'si için aşağıdaki URL'yi
https://{domainName}.ciamlogin.com/{tenant_id}/v2.0
girin.{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.
Kimliği doğrulanmamış istekler'in altında kimlik sağlayıcısı olarak HTTP 401 Yetkisiz'yi seçin.
Belirteç deposu seçeneğinin seçimini kaldırın.
Azure İşlevinize kimlik doğrulaması eklemek için Ekle'yi seçin.
5.2 OpenID Connect 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:
Azure portalında oturum açın, ardından daha önce yayımladığınız işlev uygulamasına gidin ve bu uygulamayı seçin.
Soldaki menüden Kimlik Doğrulaması'nı seçin.
Kimlik sağlayıcısı ekle'yi seçin.
Kimlik sağlayıcısı olarak OpenID Connect'i seçin.
Contoso Microsoft Entra Id gibi bir ad sağlayın.
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
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.
Microsoft Entra yönetim merkezinde:
- Daha önce oluşturduğunuz Azure İşlevleri kimlik doğrulama olayları API'sinin uygulama kaydını seçin.
- Sertifikalar ve gizli diziler İstemci gizli>dizileri>Yeni istemci gizli dizisi'ni seçin.
- gizli diziniz için bir açıklama ekleyin.
- Gizli dizi için bir süre sonu seçin veya özel bir yaşam süresi belirtin.
- Ekle'yi seçin.
- Gizli anahtarın değerini istemci uygulama kodunuzda kullanmak üzere kaydedin. Bu gizli dizi değeri, bu sayfadan ayrıldıktan sonra bir daha görüntülenmez.
Azure İşlevi'ne dönün, Uygulama kaydı altında İstemci gizli dizisini girin.
Belirteç deposu seçeneğinin seçimini kaldırın.
OpenID Connect 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:
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>
.
- değerini
Oturum açtıktan sonra kodu çözülen belirteciniz adresinde
https://jwt.ms
gösterilir.