Skip to content

Commit 227a988

Browse files
authored
chore: Added sample snippets for IdP config APIs (#218)
* chore: Added sample snippets for IdP config APIs * fix: Fixing a typo in a snippet
1 parent 0df0071 commit 227a988

File tree

1 file changed

+149
-0
lines changed

1 file changed

+149
-0
lines changed

FirebaseAdmin/FirebaseAdmin.Snippets/FirebaseAuthSnippets.cs

Lines changed: 149 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
using System.Threading.Tasks;
1919
using FirebaseAdmin.Auth;
2020
using FirebaseAdmin.Auth.Hash;
21+
using FirebaseAdmin.Auth.Providers;
2122
using Microsoft.AspNetCore.Http;
2223
using Microsoft.AspNetCore.Mvc;
2324

@@ -688,6 +689,154 @@ internal static async Task GenerateSignInWithEmailLink()
688689
// [END sign_in_with_email_link]
689690
}
690691

692+
internal static async Task CreateSamlProviderConfig()
693+
{
694+
// [START create_saml_provider]
695+
var args = new SamlProviderConfigArgs()
696+
{
697+
DisplayName = "SAML provider name",
698+
Enabled = true,
699+
ProviderId = "saml.myProvider",
700+
IdpEntityId = "IDP_ENTITY_ID",
701+
SsoUrl = "https://example.com/saml/sso/1234/",
702+
X509Certificates = new List<string>()
703+
{
704+
"-----BEGIN CERTIFICATE-----\nCERT1...\n-----END CERTIFICATE-----",
705+
"-----BEGIN CERTIFICATE-----\nCERT2...\n-----END CERTIFICATE-----",
706+
},
707+
RpEntityId = "RP_ENTITY_ID",
708+
CallbackUrl = "https://project-id.firebaseapp.com/__/auth/handler",
709+
};
710+
SamlProviderConfig saml = await FirebaseAuth.DefaultInstance
711+
.CreateProviderConfigAsync(args);
712+
Console.WriteLine($"Created new SAML provider: {saml.ProviderId}");
713+
// [END create_saml_provider]
714+
}
715+
716+
internal static async Task UpdateSamlProviderConfig()
717+
{
718+
// [START update_saml_provider]
719+
var args = new SamlProviderConfigArgs()
720+
{
721+
ProviderId = "saml.myProvider",
722+
X509Certificates = new List<string>()
723+
{
724+
"-----BEGIN CERTIFICATE-----\nCERT2...\n-----END CERTIFICATE-----",
725+
"-----BEGIN CERTIFICATE-----\nCERT3...\n-----END CERTIFICATE-----",
726+
},
727+
};
728+
SamlProviderConfig saml = await FirebaseAuth.DefaultInstance
729+
.UpdateProviderConfigAsync(args);
730+
Console.WriteLine($"Updated SAML provider: {saml.ProviderId}");
731+
// [END update_saml_provider]
732+
}
733+
734+
internal static async Task GetSamlProviderConfig()
735+
{
736+
// [START get_saml_provider]
737+
SamlProviderConfig saml = await FirebaseAuth.DefaultInstance
738+
.GetSamlProviderConfigAsync("saml.myProvider");
739+
Console.WriteLine($"{saml.DisplayName}: {saml.Enabled}");
740+
// [END get_saml_provider]
741+
}
742+
743+
internal static async Task DeleteSamlProviderConfig()
744+
{
745+
// [START delete_saml_provider]
746+
await FirebaseAuth.DefaultInstance.DeleteProviderConfigAsync("saml.myProvider");
747+
// [END delete_saml_provider]
748+
}
749+
750+
internal static async Task ListSamlProviderConfigs()
751+
{
752+
// [START list_saml_providers]
753+
var listOptions = new ListProviderConfigsOptions()
754+
{
755+
PageToken = "nextPageToken",
756+
};
757+
IAsyncEnumerator<SamlProviderConfig> enumerator = FirebaseAuth.DefaultInstance
758+
.ListSamlProviderConfigsAsync(listOptions)
759+
.GetEnumerator();
760+
761+
while (await enumerator.MoveNext())
762+
{
763+
SamlProviderConfig saml = enumerator.Current;
764+
Console.WriteLine(saml.ProviderId);
765+
}
766+
767+
// [END list_saml_providers]
768+
}
769+
770+
internal static async Task CreateOidcProviderConfig()
771+
{
772+
// [START create_oidc_provider]
773+
var args = new OidcProviderConfigArgs()
774+
{
775+
DisplayName = "OIDC provider name",
776+
Enabled = true,
777+
ProviderId = "oidc.myProvider",
778+
ClientId = "CLIENT_ID2",
779+
Issuer = "https://oidc.com/CLIENT_ID2",
780+
};
781+
OidcProviderConfig oidc = await FirebaseAuth.DefaultInstance
782+
.CreateProviderConfigAsync(args);
783+
Console.WriteLine($"Created new OIDC provider: {oidc.ProviderId}");
784+
// [END create_oidc_provider]
785+
}
786+
787+
internal static async Task UpdateOidcProviderConfig()
788+
{
789+
// [START update_oidc_provider]
790+
var args = new OidcProviderConfigArgs()
791+
{
792+
DisplayName = "OIDC provider name",
793+
Enabled = true,
794+
ProviderId = "oidc.myProvider",
795+
ClientId = "CLIENT_ID",
796+
Issuer = "https://oidc.com",
797+
};
798+
OidcProviderConfig oidc = await FirebaseAuth.DefaultInstance
799+
.UpdateProviderConfigAsync(args);
800+
Console.WriteLine($"Updated OIDC provider: {oidc.ProviderId}");
801+
// [END update_oidc_provider]
802+
}
803+
804+
internal static async Task GetOidcProviderConfig()
805+
{
806+
// [START get_oidc_provider]
807+
OidcProviderConfig oidc = await FirebaseAuth.DefaultInstance
808+
.GetOidcProviderConfigAsync("oidc.myProvider");
809+
Console.WriteLine($"{oidc.DisplayName}: {oidc.Enabled}");
810+
// [END get_oidc_provider]
811+
}
812+
813+
internal static async Task DeleteOidcProviderConfig()
814+
{
815+
// [START delete_oidc_provider]
816+
await FirebaseAuth.DefaultInstance.DeleteProviderConfigAsync("oidc.myProvider");
817+
// [END delete_oidc_provider]
818+
}
819+
820+
internal static async Task ListOidcProviderConfigs()
821+
{
822+
// [START list_oidc_providers]
823+
var listOptions = new ListProviderConfigsOptions()
824+
{
825+
PageToken = "nextPageToken",
826+
};
827+
IAsyncEnumerator<OidcProviderConfig> enumerator = FirebaseAuth.DefaultInstance
828+
.ListOidcProviderConfigsAsync(listOptions)
829+
.GetEnumerator();
830+
831+
while (await enumerator.MoveNext())
832+
{
833+
OidcProviderConfig oidc = enumerator.Current;
834+
Console.WriteLine(oidc.ProviderId);
835+
}
836+
837+
// [END list_oidc_providers]
838+
}
839+
691840
// Place holder method to make the compiler happy. This is referenced by all email action
692841
// link snippets.
693842
private static void SendCustomEmail(string email, string displayName, string link) { }

0 commit comments

Comments
 (0)