Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Önemli
1 Mayıs 2025 tarihinden itibaren Azure AD B2C artık yeni müşteriler için satın alınamayacak. SSS bölümünden daha fazla bilgi edinebilirsiniz.
Bu makalede, iOS Swift uygulamanız için Azure Active Directory B2C (Azure AD B2C) kimlik doğrulama deneyimini etkinleştirme, özelleştirme ve geliştirme yöntemleri açıklanmaktadır.
Başlamadan önce aşağıdaki makaleler hakkında bilgi sahibi olun:
- Azure AD B2C kullanarak örnek bir iOS Swift uygulamasında kimlik doğrulamayı yapılandırma
- Azure AD B2C kullanarak kendi iOS Swift uygulamanızda kimlik doğrulamasını etkinleştirme
Özel bir etki alanı kullanın
Özel bir etki alanı kullanarak kimlik doğrulama URL'sini tamamen markalayabilirsiniz. Kullanıcı açısından bakıldığında, kullanıcılar kimlik doğrulama süreci sırasında Azure AD B2C b2clogin.com alan adına yönlendirilmek yerine kendi alanınızda kalır.
URL'de tüm "b2c" referanslarını kaldırmak için, kimlik doğrulama isteği URL'sindeki B2C kiracı adınızı, contoso.onmicrosoft.com yerine kiracı kimliği GUID'niz ile değiştirebilirsiniz. Örneğin, https://fabrikamb2c.b2clogin.com/contoso.onmicrosoft.com/
'ı https://account.contosobank.co.uk/<tenant ID GUID>/
olarak değiştirebilirsiniz.
Kimlik doğrulama URL'sinde özel bir alan adı ve kiracı kimliğinizi kullanmak için aşağıdakileri yapın:
- Özel etki alanlarını etkinleştirme başlığındaki yönergeleri izleyin.
- Özel etki alanınız ile
kAuthorityHostName
sınıf üyesini güncelle. - Sınıf üyesini
kTenantName
kiracı kimliğiniz ile güncelleştirin.
Aşağıdaki Swift kodu, değişiklik öncesinde uygulama ayarlarını gösterir:
let kTenantName = "contoso.onmicrosoft.com"
let kAuthorityHostName = "contoso.b2clogin.com"
Aşağıdaki Swift kodu, değişiklik sonrasındaki uygulama ayarlarını gösterir:
let kTenantName = "00000000-0000-0000-0000-000000000000"
let kAuthorityHostName = "login.contoso.com"
Oturum açma adını önceden doldurma
Oturum açma kullanıcı yolculuğu sırasında uygulamanız belirli bir kullanıcıyı hedef alabilir. Bir uygulama bir kullanıcıyı hedeflediğinde, yetkilendirme isteğinde login_hint
kullanıcının oturum açma adıyla sorgu parametresini belirtebilir. Azure AD B2C, oturum açma adını otomatik olarak doldurur ve kullanıcının yalnızca parolayı sağlaması gerekir.
Kullanıcı adını önceden doldurmak için aşağıdakileri yapın:
- Özel bir ilke kullanıyorsanız, Doğrudan oturum açmayı ayarlama bölümünde açıklandığı gibi gerekli giriş beyanını ekleyin.
- Microsoft Authentication Library (MSAL) yapılandırma nesnenizi bulun ve ardından oturum açma ipucunu içeren
withLoginHint()
metodunu ekleyin.
let parameters = MSALInteractiveTokenParameters(scopes: kScopes, webviewParameters: self.webViewParameters!)
parameters.promptType = .selectAccount
parameters.authority = authority
parameters.loginHint = "bob@contoso.com"
// More settings here
applicationContext.acquireToken(with: parameters) { (result, error) in
...
Kimlik sağlayıcısını önceden seçme
Uygulamanızın oturum açma yolculuğunu Facebook, LinkedIn veya Google gibi sosyal hesapları içerecek şekilde yapılandırdıysanız parametresini domain_hint
belirtebilirsiniz. Bu sorgu parametresi, Azure AD B2C'ye oturum açmak için kullanılması gereken sosyal kimlik sağlayıcısı hakkında bir ipucu sağlar. Örneğin, uygulama belirtirse domain_hint=facebook.com
oturum açma akışı doğrudan Facebook oturum açma sayfasına gider.
Kullanıcıları bir dış kimlik sağlayıcısına yönlendirmek için aşağıdakileri yapın:
- Dış kimlik sağlayıcınızın etki alanı adını kontrol edin. Daha fazla bilgi için bkz. Oturum açmayı sosyal bir sağlayıcıyayönlendirme.
- Ek sorgu parametrelerini depolamak için mevcut bir liste nesnesi oluşturun veya kullanın.
-
domain_hint
İlgili etki alanı adını içeren parametresini listeye ekleyin (örneğin,facebook.com
). - Ek sorgu parametreleri listesini MSAL yapılandırma nesnesinin
extraQueryParameters
özniteliğine geçirin.
let extraQueryParameters: [String: String] = ["domain_hint": "facebook.com"]
let parameters = MSALInteractiveTokenParameters(scopes: kScopes, webviewParameters: self.webViewParameters!)
parameters.promptType = .selectAccount
parameters.authority = authority
parameters.extraQueryParameters = extraQueryParameters
// More settings here
applicationContext.acquireToken(with: parameters) { (result, error) in
...
Kullanıcı arabirimi dilini belirtme
Azure AD B2C'de dil özelleştirmesi, kullanıcı akışınızın müşterilerinizin ihtiyaçlarına uygun çeşitli dilleri barındırmasını sağlar. Daha fazla bilgi için bkz . Dil özelleştirme.
Tercih edilen dili ayarlamak için aşağıdakileri yapın:
- Dil özelleştirmesini yapılandırın.
- Ek sorgu parametrelerini depolamak için mevcut bir liste nesnesi oluşturun veya kullanın.
- parametresini
ui_locales
ilgili dil koduyla listeye ekleyin (örneğin,en-us
). - Ek sorgu parametreleri listesini MSAL yapılandırma nesnesinin
extraQueryParameters
özniteliğine geçirin.
let extraQueryParameters: [String: String] = ["ui_locales": "en-us"]
let parameters = MSALInteractiveTokenParameters(scopes: kScopes, webviewParameters: self.webViewParameters!)
parameters.promptType = .selectAccount
parameters.authority = authority
parameters.extraQueryParameters = extraQueryParameters
// More settings here
applicationContext.acquireToken(with: parameters) { (result, error) in
...
Özel sorgu dizesi parametresi geçirme
Özel ilkelerle, özel bir sorgu dizesi parametresi geçirebilirsiniz. İyi bir kullanım örneği, sayfa içeriğini dinamik olarak değiştirmek istediğiniz durumlardır.
Özel sorgu dizesi parametresi geçirmek için aşağıdakileri yapın:
- ContentDefinitionParameters öğesini yapılandırın.
- Ek sorgu parametrelerini depolamak için mevcut bir liste nesnesi oluşturun veya kullanın.
- gibi
campaignId
özel sorgu dizesi parametresini ekleyin. Parametre değerini ayarlayın (örneğin,germany-promotion
). - Ek sorgu parametreleri listesini MSAL yapılandırma nesnesinin
extraQueryParameters
özniteliğine geçirin.
let extraQueryParameters: [String: String] = ["campaignId": "germany-promotion"]
let parameters = MSALInteractiveTokenParameters(scopes: kScopes, webviewParameters: self.webViewParameters!)
parameters.promptType = .selectAccount
parameters.authority = authority
parameters.extraQueryParameters = extraQueryParameters
// More settings here
applicationContext.acquireToken(with: parameters) { (result, error) in
...
Kimlik belirteci ipucunu iletme
Bağlı olan taraf uygulaması, OAuth2 yetkilendirme isteğinin bir parçası olarak bir gelen JSON Web Belirteci (JWT) gönderebilir. Gelen belirteç, kullanıcı veya yetkilendirme isteği hakkında bir ipucudur. Azure AD B2C belirteci doğrular ve ardından talebi ayıklar.
Kimlik doğrulama isteğine kimlik belirteci ipucu eklemek için aşağıdakileri yapın:
- Özel ilkenizde bir kimlik belirteci ipucu teknik profili tanımlayın.
- Kodunuzda bir kimlik belirteci oluşturun veya alın ve belirteci bir değişken olarak ayarlayın (örneğin,
idToken
). - Ek sorgu parametrelerini depolamak için mevcut bir liste nesnesi oluşturun veya kullanın.
-
id_token_hint
parametresini, kimlik belirtecini depolayan ilgili değişkenle ekleyin. - Ek sorgu parametreleri listesini MSAL yapılandırma nesnesinin
extraQueryParameters
özniteliğine geçirin.
let extraQueryParameters: [String: String] = ["id_token_hint": idToken]
let parameters = MSALInteractiveTokenParameters(scopes: kScopes, webviewParameters: self.webViewParameters!)
parameters.promptType = .selectAccount
parameters.authority = authority
parameters.extraQueryParameters = extraQueryParameters
// More settings here
applicationContext.acquireToken(with: parameters) { (result, error) in
...
Log kaydını yapılandırma
MSAL kitaplığı, sorunları tanılamaya yardımcı olabilecek günlük iletileri oluşturur. Uygulama log tutma işlemlerini yapılandırabilir. Uygulama ayrıca ayrıntı düzeyi ve kişisel ve kuruluş verilerinin günlüğe kaydedilip kaydedilmediği üzerinde özel denetim sağlayabilir.
Bir MSAL günlüğe kaydetme geri çağırması oluşturmanızı ve kullanıcıların kimlik doğrulaması sorunları olduğunda günlük göndermeleri için bir yol sağlamanızı öneririz. MSAL, şu günlük ayrıntı seviyelerini sağlar:
- Hata: Bir sorun oluştu ve bir hata oluşturuldu. Bu düzey, hataları ayıklamak ve sorunları tanımlamak için kullanılır.
- Uyarı: Hata veya hata olması şart değildir, ancak bilgiler tanılama ve sorunları belirleme amacıyla tasarlanmıştır.
- Bilgi: MSAL, bilgi amaçlı olan ve hata ayıklama için olması gerekmeyen olayları günlüğe kaydeder.
- Ayrıntılı: Bu varsayılan düzeydir. MSAL, kitaplık davranışının tüm ayrıntılarını günlüğe kaydeder.
Varsayılan olarak, MSAL günlükçü herhangi bir kişisel veya kurumsal veri yakalamaz. Kitaplık, karar verirseniz kişisel ve kurumsal verilerin günlüğe kaydedilmesini etkinleştirme seçeneği sunar.
MSAL günlükçü herhangi bir MSAL isteği yapılmadan önce, uygulama başlatma sırasında mümkün olduğunca erken ayarlanmalıdır.
AppDelegate.swift yönteminde MSAL application
yapılandırın.
Aşağıdaki kod parçacığında MSAL günlüğünün nasıl yapılandırılır gösterilmektedir:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
MSALGlobalConfig.loggerConfig.logLevel = .verbose
MSALGlobalConfig.loggerConfig.setLogCallback { (logLevel, message, containsPII) in
// If PiiLoggingEnabled is set YES, this block will potentially contain sensitive information (Personally Identifiable Information), but not all messages will contain it.
// containsPII == YES indicates if a particular message contains PII.
// You might want to capture PII only in debug builds, or only if you take necessary actions to handle PII properly according to legal requirements of the region
if let displayableMessage = message {
if (!containsPII) {
#if DEBUG
// NB! This sample uses print just for testing purposes
// You should only ever log to NSLog in debug mode to prevent leaking potentially sensitive information
print(displayableMessage)
#endif
}
}
}
return true
}
Eklenmiş web görünümü deneyimi
Etkileşimli kimlik doğrulaması için web tarayıcıları gereklidir. Varsayılan olarak, MSAL kitaplığı sistem web görünümünü kullanır. Oturum açma sırasında MSAL kitaplığı, Azure AD B2C kullanıcı arabirimiyle iOS sistem web görünümünü açar.
Daha fazla bilgi için iOS/macOS için tarayıcıları ve WebView'ları özelleştirme makalesine bakın.
Gereksinimlerinize bağlı olarak, eklenmiş web görünümünü kullanabilirsiniz. Ekli web görünümü ile MSAL'deki sistem web görünümü arasında görsel ve çoklu oturum açma davranışı farklılıkları vardır.
Önemli
Normalde sistem tarayıcısı olan platform varsayılanını kullanmanızı öneririz. Sistem tarayıcısı, daha önce oturum açmış olan kullanıcıları hatırlamakta daha iyidir. Google gibi bazı kimlik sağlayıcıları ekli görünüm deneyimini desteklemez.
Bu davranışı değiştirmek için, webviewType
özniteliğini MSALWebviewParameters
olarak wkWebView
olarak değiştirin. Aşağıdaki örnekte, web görünümü türünün eklenmiş görünüm olarak nasıl değiştireceği gösterilmektedir:
func initWebViewParams() {
self.webViewParameters = MSALWebviewParameters(authPresentationViewController: self)
// Use embedded view experience
self.webViewParameters?.webviewType = .wkWebView
}
Sonraki Adımlar
- Daha fazla bilgi edinmek için bkz. iOS için MSAL Swift yapılandırma seçenekleri.