services/groups: Change blessings used in unittest.

In the review for another patch, Adam suggested updating the groups
unittest so that the client and server use distinct blessings from a
common identity provider instead of having the client be a delegate of
the server. This will match the common use case more closely.

Change-Id: I1eabc895cd36932820d33e4dea51d24d69c0d5d6
diff --git a/services/groups/internal/server/server_test.go b/services/groups/internal/server/server_test.go
index acb13cc..0eac37b 100644
--- a/services/groups/internal/server/server_test.go
+++ b/services/groups/internal/server/server_test.go
@@ -148,32 +148,22 @@
 
 func setupOrDie(be backend) (clientCtx *context.T, serverName string, cleanup func()) {
 	ctx, shutdown := v23.Init()
-	cp, sp := testutil.NewPrincipal("client"), testutil.NewPrincipal("server")
-
-	// Have the server principal bless the client principal as "client".
-	blessings, err := sp.Bless(cp.PublicKey(), sp.BlessingStore().Default(), "client", security.UnconstrainedUse())
+	serverCtx, err := v23.WithPrincipal(ctx, testutil.NewPrincipal())
 	if err != nil {
-		clientCtx.Fatal("sp.Bless() failed: ", err)
+		ctx.Fatal(err)
 	}
-	// Have the client present its "client" blessing when talking to the server.
-	if _, err := cp.BlessingStore().Set(blessings, "server"); err != nil {
-		clientCtx.Fatal("cp.BlessingStore().Set() failed: ", err)
-	}
-	// Have the client treat the server's public key as an authority on all
-	// blessings that match the pattern "server".
-	if err := cp.AddToRoots(blessings); err != nil {
-		clientCtx.Fatal("cp.AddToRoots() failed: ", err)
+	if clientCtx, err = v23.WithPrincipal(ctx, testutil.NewPrincipal()); err != nil {
+		ctx.Fatal(err)
 	}
 
-	clientCtx, err = v23.WithPrincipal(ctx, cp)
-	if err != nil {
-		clientCtx.Fatal("v23.WithPrincipal() failed: ", err)
+	// Provide the client and server blessings from a common identity provider.
+	idp := testutil.NewIDProvider("idp")
+	if err := idp.Bless(v23.GetPrincipal(clientCtx), "client"); err != nil {
+		ctx.Fatal(err)
 	}
-	serverCtx, err := v23.WithPrincipal(ctx, sp)
-	if err != nil {
-		clientCtx.Fatal("v23.WithPrincipal() failed: ", err)
+	if err := idp.Bless(v23.GetPrincipal(serverCtx), "server"); err != nil {
+		ctx.Fatal(err)
 	}
-
 	serverName, stopServer := newServer(serverCtx, be)
 	cleanup = func() {
 		stopServer()
@@ -206,7 +196,7 @@
 	// Verify perms of created group.
 	perms := access.Permissions{}
 	for _, tag := range access.AllTypicalTags() {
-		perms.Add(security.BlessingPattern("server/client"), string(tag))
+		perms.Add(security.BlessingPattern("idp/client"), string(tag))
 	}
 	gotPermissions, wantPermissions := getPermsOrDie(t, ctx, g), perms
 	if !reflect.DeepEqual(gotPermissions, wantPermissions) {
@@ -229,7 +219,7 @@
 	perms = access.Permissions{}
 	// Allow Admin and Read so that we can call GetPermissions and Get.
 	for _, tag := range []access.Tag{access.Admin, access.Read} {
-		perms.Add(security.BlessingPattern("server/client"), string(tag))
+		perms.Add(security.BlessingPattern("idp/client"), string(tag))
 	}
 	if err := g.Create(ctx, perms, bpcSlice("foo", "bar", "foo")); err != nil {
 		t.Fatalf("Create failed: %v", err)
@@ -300,7 +290,7 @@
 	// fails.
 	g = groups.GroupClient(naming.JoinAddressName(serverName, "grpC"))
 	perms := access.Permissions{}
-	perms.Add(security.BlessingPattern("server/client"), string(access.Admin))
+	perms.Add(security.BlessingPattern("idp/client"), string(access.Admin))
 	if err := g.Create(ctx, perms, nil); err != nil {
 		t.Fatalf("Create failed: %v", err)
 	}
@@ -331,7 +321,7 @@
 
 	// Mirrors syncbase/v23/syncbase/testutil/layer.go.
 	myperms := access.Permissions{}
-	myperms.Add(security.BlessingPattern("server/client"), string(access.Admin))
+	myperms.Add(security.BlessingPattern("idp/client"), string(access.Admin))
 	// Demonstrate that myperms differs from the current perms.
 	if reflect.DeepEqual(myperms, getPermsOrDie(t, ctx, ac)) {
 		t.Fatalf("Permissions should not match: %v", myperms)
@@ -379,7 +369,7 @@
 
 	// SetPermissions with empty version should succeed.
 	permsBefore, versionBefore = permsAfter, versionAfter
-	myperms.Add(security.BlessingPattern("server/client"), string(access.Read))
+	myperms.Add(security.BlessingPattern("idp/client"), string(access.Read))
 	if err := ac.SetPermissions(ctx, myperms, ""); err != nil {
 		t.Fatalf("SetPermissions failed: %v", err)
 	}
@@ -498,7 +488,7 @@
 	// Create a group with perms that disallow Add(), check that Add() fails.
 	g = groups.GroupClient(naming.JoinAddressName(serverName, "grpB"))
 	perms := access.Permissions{}
-	perms.Add(security.BlessingPattern("server/client"), string(access.Admin))
+	perms.Add(security.BlessingPattern("idp/client"), string(access.Admin))
 	if err := g.Create(ctx, perms, nil); err != nil {
 		t.Fatalf("Create failed: %v", err)
 	}
@@ -587,7 +577,7 @@
 	// fails.
 	g = groups.GroupClient(naming.JoinAddressName(serverName, "grpB"))
 	perms := access.Permissions{}
-	perms.Add(security.BlessingPattern("server/client"), string(access.Admin))
+	perms.Add(security.BlessingPattern("idp/client"), string(access.Admin))
 	if err := g.Create(ctx, perms, bpcSlice("foo", "bar")); err != nil {
 		t.Fatalf("Create failed: %v", err)
 	}