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.
Şunun için geçerlidir:
Dış kiracılar (daha fazla bilgi edinin)
Bu öğreticide, Bir Android mobil uygulamasına Microsoft Authentication Library (MSAL) yerel kimlik doğrulama SDK'sı ekleme gösterilmektedir.
Bu öğreticide şunları yapacaksınız:
- MSAL bağımlılıkları ekleyin.
- Yapılandırma dosyası oluşturun.
- MSAL SDK örneği oluşturma.
Önkoşullar
- Henüz yapmadıysanız, yerel kimlik doğrulaması kullanarak örnek Android (Kotlin) mobil uygulamasında kullanıcıları oturum açma adımlarını içeren yönergelerini izleyin ve dış kiracınıza bir uygulama kaydedin. Aşağıdaki adımları tamamladığınızdan emin olun:
- Bir uygulamayı kaydedin.
- Genel istemci ve yerel kimlik doğrulama akışlarını etkinleştirin.
- API izinleri verme.
- Kullanıcı akışı oluşturma.
- Uygulamayı kullanıcı akışıyla ilişkilendirin.
- Android projesi. Android projeniz yoksa oluşturun.
MSAL bağımlılıklarını ekleyin
Projenizi Android Studio'da açın veya yeni bir proje oluşturun.
Uygulamanızın
build.gradleaçın ve aşağıdaki bağımlılıkları ekleyin:allprojects { repositories { //Needed for com.microsoft.device.display:display-mask library maven { url 'https://pkgs.dev.azure.com/MicrosoftDeviceSDK/DuoSDK-Public/_packaging/Duo-SDK-Feed/maven/v1' name 'Duo-SDK-Feed' } mavenCentral() google() } } //... dependencies { implementation 'com.microsoft.identity.client:msal:6.+' //... }Android Studio'da Dosya>Projeyi Gradle Dosyalarıyla Eşitleöğesini seçin.
Yapılandırma dosyası oluşturma
Uygulama (istemci) kimliği gibi gerekli kiracı tanımlayıcılarını bir JSON yapılandırma ayarı aracılığıyla MSAL SDK'ya geçirirsiniz.
Yapılandırma dosyası oluşturmak için şu adımları kullanın:
Android Studio'nun proje bölmesinde app\src\main\resadresine gidin.
üzerine sağ tıklayın ve Yeni>Dizinseçin. Yeni dizin adı olarak
rawgirin ve tamam seçin.app\src\main\res\rawiçinde
auth_config_native_auth.jsonadlı yeni bir JSON dosyası oluşturun.auth_config_native_auth.jsondosyasına aşağıdaki MSAL yapılandırmalarını ekleyin:{ "client_id": "Enter_the_Application_Id_Here", "authorities": [ { "type": "CIAM", "authority_url": "https://Enter_the_Tenant_Subdomain_Here.ciamlogin.com/Enter_the_Tenant_Subdomain_Here.onmicrosoft.com/" } ], "challenge_types": ["oob"], "logging": { "pii_enabled": false, "log_level": "INFO", "logcat_enabled": true } } //...Aşağıdaki yer tutucuları Microsoft Entra yönetim merkezinden aldığınız kiracı değerlerinizle değiştirin:
-
Enter_the_Application_Id_Hereyer tutucusunu daha önce kaydettiğiniz uygulamanın uygulama (istemci) kimliğiyle değiştirin. -
Enter_the_Tenant_Subdomain_Here'yi dizin (kiracı) alt alan adıyla değiştirin. Örneğin, kiracı birincil domain adınızcontoso.onmicrosoft.comise,contosodomainini kullanın. Kiracı adınız yoksa, kiracı ayrıntılarınızı nasıl okuyacağınızıöğrenin.
Sınama türleri, uygulamanın desteklediği kimlik doğrulama yöntemini Microsoft Entra'ya bildirmek için kullandığı değerlerin listesidir.
- Tek seferlik e-posta geçiş koduyla kaydolma ve oturum açma akışları için
["oob"]kullanın. - E-posta ve parola ile kaydolma ve oturum açma akışları için
["oob","password"]kullanın. - Self servis parola sıfırlama (SSPR) için
["oob"]kullanın.
-
İsteğe bağlı: Log kaydı yapılandırması
Uygulama oluşturma sırasında günlüğe kaydetmeyi açmak için bir günlük geri çağırma fonksiyonu oluşturun, böylece SDK günlükleri çıkartabilir.
import com.microsoft.identity.client.Logger
fun initialize(context: Context) {
Logger.getInstance().setExternalLogger { tag, logLevel, message, containsPII ->
Logs.append("$tag $logLevel $message")
}
}
Günlükçüyü yapılandırmak için yapılandırma dosyasına auth_config_native_auth.jsonbir bölüm eklemeniz gerekir:
//...
{
"logging": {
"pii_enabled": false,
"log_level": "INFO",
"logcat_enabled": true
}
}
//...
- logcat_enabled: Kitaplığın günlüğe kaydetme işlevini etkinleştirir.
- pii_enabled: Kişisel veri içeren iletilerin mi yoksa kuruluş verilerinin mi günlüğe kaydedildiğini belirtir. False olarak ayarlandığında günlükler kişisel veriler içermez. True olarak ayarlandığında günlükler kişisel veriler içerebilir.
-
log_level: Hangi günlük düzeyinin etkinleştirileceğine karar vermek için bunu kullanın. Android aşağıdaki günlük düzeylerini destekler:
- HATA
- UYARI
- BİLGİ
- AYRINTILI
MSAL günlüğü hakkında daha fazla bilgi için bkz. Androidiçin MSAL'de günlüğe kaydetme.
Yerel kimlik doğrulaması MSAL SDK örneği oluşturma
onCreate() yönteminde, uygulamanın yerel kimlik doğrulaması aracılığıyla kiracınızla kimlik doğrulaması yapabilmesi için bir MSAL örneği oluşturun.
createNativeAuthPublicClientApplication() yöntemi, authClientadlı bir örneği döndürür. Daha önce oluşturduğunuz JSON yapılandırma dosyasını parametre olarak geçirin.
//...
authClient = PublicClientApplication.createNativeAuthPublicClientApplication(
this,
R.raw.auth_config_native_auth
)
//...
Kodunuz aşağıdaki kod parçacığına benzer olmalıdır:
class MainActivity : AppCompatActivity() {
private lateinit var authClient: INativeAuthPublicClientApplication
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
authClient = PublicClientApplication.createNativeAuthPublicClientApplication(
this,
R.raw.auth_config_native_auth
)
getAccountState()
}
private fun getAccountState() {
CoroutineScope(Dispatchers.Main).launch {
val accountResult = authClient.getCurrentAccount()
when (accountResult) {
is GetAccountResult.AccountFound -> {
displaySignedInState(accountResult.resultValue)
}
is GetAccountResult.NoAccountFound -> {
displaySignedOutState()
}
}
}
}
private fun displaySignedInState(accountResult: AccountState) {
val accountName = accountResult.getAccount().username
val textView: TextView = findViewById(R.id.accountText)
textView.text = "Cached account found: $accountName"
}
private fun displaySignedOutState() {
val textView: TextView = findViewById(R.id.accountText)
textView.text = "No cached account found"
}
}
-
getCurrentAccount()'ı kullanarak,accountResultnesnesini döndüren önbelleğe alınmış hesabı alın. - Kalıcılıkta bir hesap bulunursa, oturum açma durumunu görüntülemek için
GetAccountResult.AccountFoundkullanın. - Aksi takdirde, oturum kapatma durumunu görüntülemek için
GetAccountResult.NoAccountFoundkullanın.
İthalat ifadelerini eklediğinizden emin olun. Android Studio, içeri aktarma deyimlerini sizin için otomatik olarak eklemelidir.