Azure Kimlik kitaplığını kullanarak Azure hizmetlerinde Go uygulamalarının kimliğini doğrulama

Uygulamalar, Azure hizmetleri ve kaynaklarına erişim sağlayan Microsoft Entra Id kimlik doğrulaması yapmak için Azure Kimlik kitaplığını kullanabilir. Bu kimlik doğrulama gereksinimi, uygulamanın Azure'a dağıtılıp dağıtılmadığını, şirket içinde barındırılıp barındırılmadığını veya bir geliştirici iş istasyonunda yerel olarak çalıştırılmasını sağlar. Aşağıdaki bölümlerde, Azure SDK istemci kitaplıklarını kullanırken farklı ortamlarda microsoft entra id'sine yönelik bir uygulamanın kimliğini doğrulamak için önerilen yaklaşımlar açıklanmaktadır.

Microsoft Entra ID aracılığıyla belirteç tabanlı kimlik doğrulaması, bağlantı dizelerini veya anahtar tabanlı seçenekleri kullanmak yerine Uygulamaların Azure'da kimlik doğrulaması için önerilen yaklaşımdır. Go için Azure Identity istemci modülü belirteç tabanlı kimlik doğrulaması sağlar ve uygulamanın yerel olarak, Azure'da veya bir şirket içi sunucuda çalışması fark etmeksizin uygulamaların Azure kaynaklarında kimlik doğrulaması yapmalarını sağlar.

Belirteç tabanlı kimlik doğrulamasının avantajları

Belirteç tabanlı kimlik doğrulaması, bağlantı dizelerine göre aşağıdaki avantajları sunar:

  • Belirteç tabanlı kimlik doğrulaması yalnızca Azure kaynağına erişmeyi amaçlayan belirli uygulamaların bunu gerçekleştirmesini sağlarken, bağlantı dizesi olan herkes veya herhangi bir uygulama bir Azure kaynağına bağlanabilir.
  • Belirteç tabanlı kimlik doğrulaması, Azure kaynak erişimini yalnızca uygulamanın ihtiyaç duyduğu belirli izinlerle sınırlamanıza olanak tanır. Bu yaklaşım en az ayrıcalık ilkesini izler. Buna karşılık, bir bağlantı dizesi Azure kaynağına tam haklar verir.
  • Belirteç tabanlı kimlik doğrulaması için yönetilen kimlik kullanırken, Azure sizin için yönetim işlevlerini işler, bu nedenle gizli dizileri güvenli hale getirme veya döndürme gibi görevler konusunda endişelenmeniz gerekmez. Bu özellik, gizliliği tehlikeye atılacak bir bağlantı dizesi veya uygulama gizli dizisi olmadığından uygulamayı daha güvenli hale getirir.
  • Bağlantı dizeleri işlevsel olarak kimlik bilgilerine eşdeğerdir ve yanlışlıkla sızıntıyı önlemek için özel işleme gerektirir. Bunları güvenli bir şekilde depolamanız (örneğin, Azure Key Vault'ta) ve bunları uygulamanızda asla sabit kodlamanız veya kaynak denetimine işlemeniz gerekir. Microsoft Secure Future Initiative (SFI), bağlantı dizelerinin ve benzer uzun ömürlü gizli dizilerin kullanımını yasaklar çünkü bunlar dikkatle yönetilmemesi durumunda uygulamanızın güvenliğini tehlikeye atmak için kullanılabilir.
  • Azure Kimlik kitaplığı sizin için Microsoft Entra belirteçlerini alır ve yönetir.

Bağlantı dizelerinin kullanımını belirteç tabanlı kimlik doğrulamasının bir seçenek olmadığı senaryolarla, ilk kavram kanıtı uygulamalarıyla veya üretim veya hassas verilere erişmeyen geliştirme prototipleriyle sınırlayın. Mümkün olduğunda, Azure kaynaklarında kimlik doğrulaması yapmak için Azure Kimlik kitaplığındaki kimlik bilgisi türlerini kullanın.

Farklı ortamlarda kimlik doğrulaması

Bir uygulamanın Azure kaynaklarında kimlik doğrulaması yapmak için kullandığı belirteç tabanlı kimlik doğrulamasının türü, uygulamanın çalıştığı yere bağlıdır. Aşağıdaki diyagramda farklı senaryolar ve ortamlar için rehberlik sağlanır:

Çalıştığı yere bağlı olarak bir uygulama için önerilen belirteç tabanlı kimlik doğrulama stratejilerini gösteren diyagram.

Bir uygulama şu durumlarda:

  • Azure'da barındırılan: Uygulamanın yönetilen kimlik kullanarak Azure kaynaklarında kimlik doğrulaması yapması gerekir. Daha fazla bilgi için bkz. Sunucu ortamlarında kimlik doğrulaması.
  • Geliştirme sırasında yerel olarak çalışıyor: Uygulama, yerel geliştirme için bir uygulama hizmet sorumlusu veya geliştiricinin Azure kimlik bilgilerini kullanarak Azure'da kimlik doğrulaması yapabilir. Daha fazla bilgi için bkz. Yerel geliştirme sırasında kimlik doğrulaması.
  • Şirket içinde barındırılan: Uygulama, bir uygulama hizmet sorumlusu veya Azure Arc söz konusu olduğunda yönetilen bir kimlik kullanarak Azure kaynaklarında kimlik doğrulaması yapmalıdır. Daha fazla bilgi için bkz. Sunucu ortamlarında kimlik doğrulaması.

Azure tarafından barındırılan uygulamalar için kimlik doğrulaması

Uygulamanızı Azure'da barındırdığınızda, kimlik bilgilerini yönetmeye gerek kalmadan Azure kaynaklarında kimlik doğrulaması yapmak için yönetilen kimlikleri kullanabilir. İki tür yönetilen kimlik vardır: kullanıcı tarafından atanan ve sistem tarafından atanan.

Kullanıcı tarafından atanan yönetilen kimlik kullanma

Kullanıcı tarafından atanan yönetilen kimliği tek başına bir Azure kaynağı olarak oluşturursunuz. Bunu bir veya daha fazla Azure kaynağına atayarak bu kaynakların aynı kimlik ve izinleri paylaşmasına izin verilmektedir. Kullanıcı tarafından atanan yönetilen kimliği kullanarak kimlik doğrulaması yapmak için, kimliği oluşturun, Azure kaynağınıza atayın ve ardından uygulamanızı istemci kimliğini, kaynak kimliğini veya nesne kimliğini belirterek kimlik doğrulaması için bu kimliği kullanacak şekilde yapılandırın.

Sistem tarafından atanan yönetilen kimlik kullanma

Sistem tarafından atanan yönetilen kimliği doğrudan bir Azure kaynağında etkinleştirirsiniz. Kimlik, bu kaynağın yaşam döngüsüne bağlıdır ve kaynak silindiğinde otomatik olarak silinir. Sistem tarafından atanan yönetilen kimliği kullanarak kimlik doğrulaması yapmak için Azure kaynağınızda kimliği etkinleştirin ve ardından uygulamanızı kimlik doğrulaması için bu kimliği kullanacak şekilde yapılandırın.

Yerel geliştirme sırasında kimlik doğrulaması

Yerel geliştirme sırasında, geliştirici kimlik bilgilerinizi veya hizmet sorumlunuzu kullanarak Azure kaynaklarında kimlik doğrulaması yapabilirsiniz. Bu kimlik doğrulama yöntemi, uygulamanızı Azure'a dağıtmadan uygulamanızın kimlik doğrulama mantığını test etmenizi sağlar.

Geliştirici kimlik bilgilerini kullanma

Yerel geliştirme sırasında Azure kaynaklarında kimlik doğrulaması yapmak için kendi Azure kimlik bilgilerinizi kullanabilirsiniz. Genellikle, uygulamanıza Azure hizmetlerine erişmek için gerekli belirteçleri sağlayabilen Azure CLI gibi bir geliştirme aracı kullanırsınız. Bu yöntem kullanışlıdır ancak yalnızca geliştirme amacıyla kullanılmalıdır.

Hizmet ilkesi kullanma

Microsoft Entra kiracısında bir uygulamayı temsil eden bir hizmet sorumlusu oluşturur ve bunu Azure kaynaklarına kimlik doğrulama yapmak için kullanırsınız. Uygulamanızı yerel geliştirme sırasında hizmet sorumlusu kimlik bilgilerini kullanacak şekilde yapılandırabilirsiniz. Bu yöntem, geliştirici kimlik bilgilerini kullanmaktan daha güvenlidir ve uygulamanızın üretimde kimlik doğrulamasına daha yakındır. Ancak, gizli anahtarlara duyulan ihtiyaç nedeniyle yönetilen kimlik kullanılmasına kıyasla daha az idealdir.

Şirket içinde barındırılan uygulamalar için kimlik doğrulaması

Şirket içinde barındırılan uygulamalarda, Azure kaynaklarında kimlik doğrulaması yapmak için bir hizmet sorumlusu kullanabilirsiniz. Bu yöntem, Microsoft Entra Id'de bir hizmet sorumlusu oluşturmayı, gerekli izinleri atamayı ve uygulamanızı kimlik bilgilerini kullanacak şekilde yapılandırmayı içerir. Bu yöntemle, şirket içi uygulamanız Azure hizmetlerine güvenli bir şekilde erişebilir.

  • GitHub'de Go için Azure Identity istemci kitaplığı README
  • pkg.go.dev'de Azure Identity istemci kitaplığı referansı