ব্যবহারকারী অ্যাকাউন্ট বাস্তবায়ন

অ্যান্ড্রয়েড এন্টারপ্রাইজ তালিকাভুক্তির জন্য দুটি প্রাথমিক ব্যবহারকারী পরিচয়ের ধরন রয়েছে: পরিচালিত Google Play অ্যাকাউন্ট এবং পরিচালিত Google অ্যাকাউন্ট। পরিচালিত Google Play অ্যাকাউন্টগুলি ডিভাইস-কেন্দ্রিক, মানে সেগুলি একটি নির্দিষ্ট ব্যবহারকারীর Google পরিচয়ের সাথে আবদ্ধ নয়৷ বিপরীতে, পরিচালিত Google অ্যাকাউন্টগুলি ব্যবহারকারীর কর্পোরেট Google পরিচয়ের সাথে লিঙ্ক করা হয়, যা তাদের ডিভাইসে লগ ইন করে ব্যবহারকারীর অভিজ্ঞতা উন্নত করে।

ম্যানেজ করা Google Play অ্যাকাউন্টগুলি স্ট্যান্ডার্ড হিসাবে ব্যবহৃত হত। যাইহোক, Google এখন সমস্ত নতুন বিকাশকে উন্নত তালিকাভুক্তি প্রবাহ ব্যবহার করতে উত্সাহিত করে, যা পরিচালিত Google অ্যাকাউন্ট তৈরি করতে ডিফল্ট।

যদিও পুরানো বাস্তবায়নের জন্য নির্দেশিকা এই নথির শেষে প্রেক্ষাপটের জন্য প্রদান করা হয়েছে, সমস্ত নতুন উন্নয়ন এখানে বিস্তারিত নতুন তালিকাভুক্তি প্রবাহ অনুসরণ করা উচিত।

ওভারভিউ

উন্নত ডিভাইস নথিভুক্তি প্রবাহ বেশ কিছু নতুন উপাদান ব্যবহার করে এবং কাস্টম ডিভাইস পলিসি কন্ট্রোলার (ডিপিসি) কীভাবে প্রয়োগ করা হয় তা পরিবর্তন করে ডিভাইস সেটআপকে স্ট্রীমলাইন করে। এই নতুন পদ্ধতির জন্য কাস্টম DPC সলিউশনের প্রয়োজন অ্যান্ড্রয়েড ম্যানেজমেন্ট এপিআই (AMAPI) SDK এবং অ্যান্ড্রয়েড ডিভাইস পলিসির সাথে একীভূত করার জন্য ডিভাইসের প্রস্তুতি এবং ব্যবহারকারী তালিকাভুক্তি কার্য সম্পাদন করার জন্য।

AMAPI SDK ডিভাইসেই Android ডিভাইস নীতির সাথে ইন্টারঅ্যাক্ট করার জন্য প্রয়োজনীয় API প্রদান করে। সার্ভারের দিকে, এন্টারপ্রাইজ মোবিলিটি ম্যানেজমেন্ট (EMM) সমাধানগুলি ডিভাইস তালিকাভুক্তি প্রক্রিয়া শুরু করার জন্য প্রয়োজনীয় তালিকাভুক্তি টোকেন তৈরি করতে Play EMM API ব্যবহার করবে।

অ্যান্ড্রয়েড ডিভাইস পলিসি অ্যাপ্লিকেশনটি এখন ডিভাইস-সাইড ক্রিয়াকলাপ পরিচালনার ক্ষেত্রে একটি কেন্দ্রীয় ভূমিকা গ্রহণ করে৷ AMAPI SDK ডিভাইসে এর ইনস্টলেশন এবং প্রয়োজনীয় আপডেটগুলি পরিচালনা করতে ব্যবহৃত হয়। অ্যান্ড্রয়েড ডিভাইস নীতি ব্যবহারকারীর প্রমাণীকরণ প্রবাহকেও গ্রহণ করে, ব্যবহারকারীর প্রমাণীকরণ সরাসরি পরিচালনা করে এবং EMM-কে ব্যবহারকারীর পরিচয় প্রদান করে। Google কোনো কারণে ব্যবহারকারীকে প্রমাণীকরণ করতে না পারলে, একটি নতুন পরিচালিত Google Play অ্যাকাউন্ট তৈরি করা হয় এবং ফলব্যাক হিসেবে ডিভাইসে যোগ করা হয়।

API ইন্টিগ্রেশন

শুরু করার আগে, যাচাই করুন যে আপনি Play EMM API ক্লায়েন্ট এবং AMAPI SDK-এর সর্বশেষ সংস্করণ ব্যবহার করছেন।

তালিকাভুক্তি বাস্তবায়ন গাইড

এই নির্দেশিকা তালিকাভুক্তি বাস্তবায়নের জন্য প্রয়োজনীয় পদক্ষেপ প্রদান করে। এটি পরিবেশের প্রস্তুতি, বিভিন্ন তালিকাভুক্তির পদ্ধতি পরিচালনা এবং ডিভাইসের জীবনচক্র পরিচালনা করে।

পরিবেশ প্রস্তুত করুন

অ্যাকাউন্ট সেটআপ শুরু করার আগে, ডিভাইসের পরিবেশ প্রস্তুত করা প্রয়োজন। এই প্রস্তুতির জন্য প্লে স্টোরকে এর সর্বশেষ পুনরাবৃত্তিতে আপডেট করা এবং ডিভাইসে নীরবে Android ডিভাইস নীতি ( com.google.android.apps.work.clouddpc ) ইনস্টল করা অন্তর্ভুক্ত। অ্যান্ড্রয়েড ডিভাইস পলিসি ইনস্টলেশন অপরিহার্য কারণ এতে অ্যাকাউন্ট সেটআপ প্রক্রিয়ার গুরুত্বপূর্ণ উপাদান রয়েছে। EMM-এর ম্যানুয়াল পরিবেশ প্রস্তুতির প্রয়োজন নেই। পরিবর্তে, তাদের EnvironmentClient ব্যবহার করা উচিত, যেমন নথিভুক্ত করা হয়েছে এবং প্রদত্ত কোড উদাহরণগুলি মেনে চলা উচিত।

নমুনা কোড

ডিভাইসে কাজের অ্যাকাউন্ট যোগ করার জন্য AccountSetup API ব্যবহার করতে সক্ষম হওয়ার আগে, DPC কে প্রথমে যাচাই করতে হবে যে ডিভাইসের পরিবেশ প্রস্তুত।

  • EnvironmentClientFactory ব্যবহার করুন একটি EnvironmentClient ইনস্ট্যান্ট করতে এবং prepareEnvironment কল করুন বা prepareEnvironmentAsync

    val notificationReceiverServiceName = ComponentName(context,
    NotificationReceiver::class.java)
    
    // An EMM should implement android.app.admin.DeviceAdminReceiver and use that
    // class to instantiate a ComponentName
    
    val admin = ComponentName(this, com.example.dpc.DeviceAdminReceiver::class.java)
    
    EnvironmentClientFactory.create(context)
        .prepareEnvironment(
            PrepareEnvironmentRequest.builder()
                .setRoles(
                    listOf(
                        Role.builder().setRoleType(
                            Role.RoleType.DEVICE_POLICY_CONTROLLER
                        ).build()
                    )
                )
        .setAdmin(admin)
                .build(),
              notificationReceiverServiceName,
            )
    
    [Proceed with AccountSetup]
    
    

এই অপারেশনটি কয়েক সেকেন্ড বা মিনিট সময় নিতে পারে, যেহেতু সঠিক কাজের পরিবেশ যাচাই করতে অ্যাপ্লিকেশনগুলি ইনস্টল বা আপডেট করা হতে পারে। Google এই প্রক্রিয়াটি যত তাড়াতাড়ি সম্ভব ব্যাকগ্রাউন্ডে শুরু করার এবং ব্যবহারকারীর অপেক্ষা করার সময় উপযুক্ত UI দেখানোর পরামর্শ দেয়। অপারেশন শেষ হলে, ডিভাইসটি অ্যাকাউন্ট সেটআপ API ব্যবহার করার জন্য DPC-এর জন্য প্রস্তুত।

তালিকাভুক্তি প্রবাহ

EMM-কে অবশ্যই users.generateAuthenticationToken() এবং users.insert() ব্যবহার করা বন্ধ করতে হবে। পরিবর্তে, শেষ-ব্যবহারকারী প্রমাণীকরণ সঞ্চালনের জন্য ইএমএমগুলিকে অন-ডিভাইস API কল করতে হবে। নতুন API userId এবং email ডিপিসিতে ফেরত দেবে। Google ব্যবহারকারীকে প্রমাণীকরণ করতে না পারলে, একটি পরিচালিত Google Play অ্যাকাউন্ট তৈরি করা হবে এবং ডিভাইসে যোগ করা হবে। এই ক্ষেত্রে, Google সেই অ্যাকাউন্টের userId ফেরত দেবে।

Google এখন এনরোলমেন্ট টোকেন ব্যবহারের প্রবর্তন করেছে, যা অবশ্যই প্রমাণীকরণ এপিআই-তে পাস করতে হবে। কখন এবং কীভাবে টোকেন তৈরি করতে হবে তা EMM নির্ধারণ করে এবং এটি একটি বিদ্যমান তালিকাভুক্তির পেলোডের অংশ হতে পারে (যেমন, একটি QR কোড বা জিরো-টাচ কনফিগারেশন)।

যাইহোক, Google চাহিদা অনুযায়ী টোকেন তৈরি করার এবং ম্যানেজড Google Play অ্যাকাউন্টের জন্য বিদ্যমান API-কে নতুন API দিয়ে প্রতিস্থাপন করার সুপারিশ করে যাতে পরিবর্তন কম হয়।

পূর্ববর্তী API-এর সাথে সাধারণ DPC ইন্টিগ্রেশন
চিত্র 1. পূর্ববর্তী API-এর সাথে সাধারণ DPC একীকরণ
ব্যবহারকারীহীন ডিভাইসের জন্য নতুন API-এর সাথে DPC ইন্টিগ্রেশনের উদাহরণ
চিত্র 2. ব্যবহারকারীহীন ডিভাইসের জন্য নতুন API-এর সাথে DPC একীকরণের উদাহরণ
ব্যবহারকারী ডিভাইসের জন্য নতুন API-এর সাথে DPC ইন্টিগ্রেশনের উদাহরণ
চিত্র 3. ব্যবহারকারী ডিভাইসের জন্য নতুন API-এর সাথে DPC একীকরণের উদাহরণ

উন্নত কাস্টম ডিপিসি তালিকাভুক্তির প্রবাহে নিম্নলিখিত পদক্ষেপগুলি জড়িত:

  1. এনরোলমেন্ট টোকেন তৈরি করুন: EMM প্লে EMM API ব্যবহার করে একটি এনরোলমেন্ট টোকেন তৈরি করে।
  2. পরিবেশ প্রস্তুত করুন: ডিভাইসটি তালিকাভুক্তির জন্য প্রস্তুত কিনা তা যাচাই করতে কাস্টম ডিপিসি পরিবেশ তৈরির প্রবাহ ব্যবহার করে।
  3. তালিকাভুক্তি শুরু করুন: কাস্টম ডিপিসি AMAPI SDK-এ startAccountSetup API-কে আহ্বান করে, তালিকাভুক্তির টোকেন পাস করে। দ্রষ্টব্য: এই API কল করার আগে DPC অবশ্যই ডিভাইসের মালিক বা প্রোফাইল মালিক হতে হবে।
  4. Google প্রমাণীকরণ কার্যকলাপ চালু করুন: যদি প্রয়োজন হয়, কাস্টম DPC AMAPI SDK-এ launchAuthenticationActivity API-কে আহ্বান করে, AccountSetupAttempt পাস করে। এটি একটি Google প্রমাণীকরণ কার্যকলাপ শুরু করে, সফল প্রমাণীকরণের পরে ব্যবহারকারীকে কাস্টম ডিপিসিতে ফিরিয়ে দেয়। ব্যবহারকারী এই প্রক্রিয়াটি এড়িয়ে যেতে পারেন। এই ক্ষেত্রে, ডিভাইসে একটি পরিচালিত Google Play অ্যাকাউন্ট যোগ করা হবে। এই বিকল্পটি googleAuthenticationOptions ব্যবহার করে কনফিগার করা যেতে পারে।
  5. তালিকাভুক্তি চূড়ান্ত করুন: AMAPI SDK তালিকাভুক্তির ফলাফলের কাস্টম ডিপিসিকে অবহিত করে।
  6. Google পরিষেবাগুলি সক্ষম করুন: পরিচালিত Google অ্যাকাউন্টের সাথে ব্যবহারকারীর ডিভাইসটি এন্টারপ্রাইজ নীতিগুলির সাথে সঙ্গতিপূর্ণ হলে, EMM-কে অবশ্যই Devices.setState() কল করতে হবে৷ এই ক্রিয়াটি ডিভাইসে অ্যাকাউন্টের জন্য Google পরিষেবাগুলিতে অ্যাক্সেস সক্ষম করে৷ এই কল ছাড়া, প্লে স্টোর এবং অন্যান্য Google পরিষেবাগুলি কাজ করবে না৷

অ্যাকাউন্ট সেটআপ - নমুনা কোড

  1. একটি অ্যাকাউন্ট সেটআপ করার প্রচেষ্টা শুরু করতে, কলিং অ্যাপ AccountSetupClient ব্যবহার করতে পারে এবং হয় startAccountSetup() বা startAccountSetupFuture() পদ্ধতিতে কল করতে পারে। একটি উদাহরণ বাস্তবায়নের জন্য, নিম্নলিখিত কোড নমুনা দেখুন:

    // Create AccountSetupClient
    val client = AccountSetupClientFactory.create(
        this,
        activityResultRegistry
    )
    lifecycle.addObserver(client.lifecycleObserver)
    
    // Create adminComponent
    val notificationReceiver = ComponentName(this, AccountSetupNotificationReceiver::class.java)
    // Helper method to get enrollment token created with Play EMM API
    val enrollmentToken = getEnrollmentToken()
    val request =
              StartAccountSetupRequest.builder()
                  .setEnrollmentToken(enteredText)
                  .setNotificationReceiverServiceComponentName(notificationReceiver)
                  .setAdminComponentName(
                      ComponentName(this, com.example.dpc.DeviceAdminReceiver::class.java))
                  .build()
    try {
        val accountSetupAttempt = client.startAccountSetup(request)
        // handle attempt
    } catch (e: Exception) {
        // handle exception
    }
      ```
    
  2. AccountSetupListener ইন্টারফেস প্রয়োগ করুন এবং প্রাপ্ত স্থিতি আপডেটগুলি কীভাবে পরিচালনা করবেন তার জন্য একটি বাস্তবায়ন প্রদান করুন।

  3. NotificationReceiverService প্রসারিত করুন এবং getAccountSetupListener() ওভাররাইড করে ধাপ 2 এ তৈরি AccountSetupListener উদাহরণ প্রদান করুন।

    // Handles account setup changes
    class AccountSetupNotificationReceiver :
          NotificationReceiverService(),
          AccountSetupListener {
    
        override fun getAccountSetupListener(): AccountSetupListener = this
    
        override fun onAccountSetupChanged(accountSetupAttempt:
      AccountSetupAttempt) {
    
            when (accountSetupAttempt.state.kind) {
                StateCase.ADDED_ACCOUNT -> {
                    val enterpriseAccount = state.addedAccount()
                    val userId = enterpriseAccount.userId
                    val deviceId = enterpriseAccount.deviceId
                    // Handle account added state.
    
                }
                StateCase.AUTHENTICATION_ACTIVITY_LAUNCH_REQUIRED -> {
                    val request = LaunchAuthenticationActivityRequest.builder()
                .setAccountSetupAttempt(accountSetupAttempt)
                .build();
                    // Send the attempt to the foreground activity to call:
                    accountSetupClient.launchAuthenticationActivity(request)
                }
                StateCase.ACCOUNT_SETUP_ERROR -> {
                    // Handle error state.
                    val failureReason = state.accountSetupError().failureReason
                }
                else -> {
                    // Handle unknown account setup attempt state.
                }
            }
        }
    }
    
      ```
    
  4. আপনার AndroidManifest.xml এ বর্ধিত NotificationReceiverService ক্লাস যোগ করুন এবং এটি রপ্তানি হয়েছে তা যাচাই করুন।

      <application>
        <service
            android:name = ".accountsetup.AccountSetupNotificationReceiver"
            android:exported = "true" />
      </application>
    

    যদি আপনার অ্যাপটি SDK 30 বা তার পরে টার্গেট করে, তাহলে AndroidManifest.xml এ একটি ক্যোয়ারী উপাদান প্রয়োজন যে এটি ADP-এর সাথে ইন্টারঅ্যাক্ট করবে।

      <queries>
        <package android:name="com.google.android.apps.work.clouddpc" />
      </queries>
    

পরীক্ষার নির্দেশিকা

এই বিভাগটি আপনার বাস্তবায়ন পরীক্ষা করার জন্য নির্দেশিকা এবং সর্বোত্তম অনুশীলনের একটি সেট প্রদান করে।

পরীক্ষা PrepareEnvironment

  1. ডিভাইসের বর্তমান অবস্থা পান: EMM চলে

    adb shell dumpsys package com.google.android.apps.work.clouddpc | grep versionName
    

    ডিভাইসে উপস্থিত Android ডিভাইস নীতির সংস্করণ পেতে। যদি Android ডিভাইস নীতি ইনস্টল করা না থাকে, তাহলে একটি খালি আউটপুট প্রত্যাশিত৷

  2. PrepareEnvironment ইন্টিগ্রেট করুন: কাস্টম DPC AMAPI SDK-এ prepareEnvironment API-কে আহ্বান করে, সঠিক অনুরোধটি পাস করে।

  3. প্রস্তুত পরিবেশের ফলাফলের জন্য অপেক্ষা করুন: কাস্টম ডিপিসি prepareEnvironment সম্পূর্ণ হওয়ার জন্য অপেক্ষা করে।

  4. PrepareEnvironment সাফল্য নিশ্চিত করুন: সম্পূর্ণ হলে, EMM আবার চলে

    adb shell dumpsys package com.google.android.apps.work.clouddpc | grep versionName
    

    এবার Android Device Policy সংস্করণটি ধাপ 1-এর থেকে বেশি হওয়া উচিত।

Google অ্যাকাউন্ট প্রমাণীকরণ পরীক্ষা করুন

  1. টেস্ট এন্টারপ্রাইজ তৈরি করুন: EMM একটি টেস্ট ডোমেন তৈরি করে Google এন্টারপ্রাইজ তৈরি করে যা একটি টেস্ট EMM এর সাথে লিঙ্ক করা হয়, enterprises.generateSignupUrl এর সাথে।
  2. Google প্রমাণীকরণ সক্ষম করুন: EMM Google অ্যাডমিন কনসোলে এই নির্দেশাবলী অনুসরণ করে পরীক্ষামূলক এন্টারপ্রাইজের জন্য Google প্রমাণীকরণ সক্ষম করে৷
  3. এনরোলমেন্ট টোকেন তৈরি করুন: EMM টাইপ userDevice সহ Play EMM API ব্যবহার করে একটি তালিকাভুক্তি টোকেন তৈরি করে।
  4. তালিকাভুক্তি শুরু করুন: কাস্টম ডিপিসি AMAPI SDK-এ startAccountSetup API-কে আহ্বান করে, তালিকাভুক্তির টোকেন পাস করে।
  5. লঞ্চ অ্যাক্টিভিটি প্রয়োজন: AMAPI SDK কাস্টম ডিপিসিকে সূচিত করে যে ব্যবহারকারীকে প্রমাণীকরণের জন্য একটি কার্যকলাপ চালু করতে হবে।
  6. ব্যবহারকারীকে প্রমাণীকরণ করুন: কাস্টম ডিপিসি ক্রিয়াকলাপ শুরু করতে launchAuthenticationActivity করার আহ্বান জানায়। ব্যবহারকারী একটি পরিচালিত Google অ্যাকাউন্টের মাধ্যমে প্রমাণীকরণ করে (পদক্ষেপ 1 এ তৈরি এন্টারপ্রাইজের অংশ)।
  7. তালিকাভুক্তি চূড়ান্ত করুন: AMAPI SDK তালিকাভুক্তির ফলাফলের কাস্টম ডিপিসিকে অবহিত করে।

Google প্রমাণীকরণ এড়িয়ে যাওয়া পরীক্ষা করুন

আমরা পূর্বে বর্ণিত সেটআপ ব্যবহার করব।

এইবার, ধাপ 7-এ, ব্যবহারকারী তাদের Google অ্যাকাউন্টের সাথে প্রমাণীকরণের পরিবর্তে Skip চাপেন। নথিভুক্তি সফলভাবে সম্পন্ন হয়, ডিভাইসে একটি পরিষেবা অ্যাকাউন্ট সহ (অর্থাৎ AuthenticationType বেনামী)।

ব্যবহারকারীহীন ডিভাইস পরীক্ষা করুন

Google প্রমাণীকরণ নিষ্ক্রিয় হলে উন্নত কাস্টম DPC তালিকাভুক্তি প্রবাহ নিম্নলিখিত পদক্ষেপগুলি ব্যবহার করে:

  1. একটি পরীক্ষা এন্টারপ্রাইজ তৈরি করুন: এটি পূর্বে তৈরি করা একই এন্টারপ্রাইজ হতে পারে।
  2. এনরোলমেন্ট টোকেন তৈরি করুন: EMM টাইপ userlessDevice সহ Play EMM API ব্যবহার করে একটি এনরোলমেন্ট টোকেন তৈরি করে।
  3. তালিকাভুক্তি শুরু করুন: কাস্টম ডিপিসি AMAPI SDK-এ startAccountSetup API-কে আহ্বান করে, তালিকাভুক্তির টোকেন পাস করে।
  4. তালিকাভুক্তি চূড়ান্ত করুন: AMAPI SDK তালিকাভুক্তির ফলাফলের কাস্টম ডিপিসিকে অবহিত করে।